Cài pgAdmin4 trên Ubuntu 16.04

Sau mấy lần cài pgAdmin sau khi mình cài mới lại OS, lần gần đây nhất là sau khi mua ổ cứng mới. Mỗi lần cài thì mình không quên lệnh này thì cũng quên lệnh kia nên hôm nay rảnh, note lại ở đây

pgAdmin là …..

pgAdmin is the leading Open Source management tool for Postgres, the world’s most advanced Open Source database. pgAdmin 4 is designed to meet the needs of both novice and experienced Postgres users alike, providing a powerful graphical interface that simplifies the creation, maintenance and use of database objects.

https://www.pgadmin.org/docs/pgadmin4/dev/

Trên trang chủ nó bảo thế đấy, tóm lại là nó cung cấp giao diện để dùng PostgreSQL. Trên Windows thì dễ, tải file exe về chạy cái một là có cả PostgreSQL và pgAdmin luôn, mình thì dev trên Ubuntu nên cài nó hơi nhây. Mình dùng nó chủ yếu là để xem database 1 cách trực quan và nhanh gọn hơn là cái terminal. Mình rất hay mở database lên xem, như vậy mình có thể biết được kết quả của code, để test code của mình, bala bala …, việc này mà xem bằng terminal thì mình chịu, xem thì vẫn được nhưng khá tốn thời gian, hơn nữa là cái terminal gặp mấy khi filter ra mà nhiều field quá thì nó bị break layout thì thôi rồi luôn. Như này nè

Giả định là máy đã được cài PostgreSQL, python, vitualenv rồi nhé, còn thiếu mỗi pgAdmin thôi.

Trước hết tạo một cái virtual environment để quẩy đã

mkdir -p ~/pgAdmin4

cd ~/pgAdmin4/

virtualenv env (Mình mặc định là python2.7 nhé, pgAdmin4 cũng chạy python2.7)

source env/bin/activate

Sau khi đã có môi trường thì tải file wheel của pgAdmin về, ở đây mình dùng v2.1

wget https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v2.1/pip/pgadmin4-2.1-py2.py3-none-any.whl

Có thể lên trang download để tải về rồi ném vào thư đã tạo ở trên (~/pgAdmin4)

https://www.pgadmin.org/download/pgadmin-4-python-wheel/

Cài vào thôi: pip install pgadmin4-2.1-py2.py3-none-any.whl

Check xem đã cài ok chưa: ls env/lib/python2.7/site-packages/pgadmin4

Vì mình cài trên desktop nên giờ phải chuẩn bị file config_local.py để chạy, có thể clone nguyên file config.py qua cho lẹ (https://www.pgadmin.org/docs/pgadmin4/dev/desktop_deployment.html#configuration)

cp env/lib/python2.7/site-packages/pgadmin4/config.py env/lib/python2.7/site-packages/pgadmin4/config_local.py

Có thể chỉnh các config trong config_local.py cho phù hợp, mình thì để mặc định luôn.

Chạy pgAdmin4 lên:

python env/lib/python2.7/site-packages/pgadmin4/pgAdmin4.py

Trời đậu, mình dính cmn lỗi này:

Ok, lỗi thì sửa thôi, cơ bản traceback này nó nói là bị permission denied, mà mình thì đang chạy từ thư mục trong home của mình (~/pgAdmin4) => Có thể là có một cái config nào đó sai bét.

/var/lib/pgadmin

_create_directory_if_not_exists(os.path.dirname(config.SQLITE_PATH)) => Trước hết là dự đoán là từ chỗ này nó làm gì với cái config.SQLITE_PATH và dẫn đến đường dẫn /var/lib/pgadmin và bị permission denied

Vào check hàm _create_directory_if_not_exists trong file env/lib/python2.7/site-packages/pgadmin4/pgadmin/setup/data_directory.py

Chả có gì => Vấn đề nằm ở config.SQLITE_PATH, ta tập trung vào chỗ này, và vì mình dùng file local_config.py nên mình sẽ check trong file này chứ không phải config.py, mở file env/lib/python2.7/site-packages/pgadmin4/config_local.py lên để quẩy thôi.

Trước hết thì ta có dòng này:

Vì mình không set biến môi trường SQLITE_PATH nên chỗ DATA_DIR sẽ là vấn đề

Đây, vui rồi, tạm thời chưa biết SERVER_MODE là gì nhưng cái lỗi nó quăng ra /var/lib/pgadmin nên khả năng cao là nó vô nhánh if => SERVER_MODE có khả năng cao là True, tìm kiếm SERVER_MODE trong file config này xem thử, mình thấy:

Chỗ này có xài SERVER_MODE nữa, nguy cơ nó mà True thiệt thì có vẻ có nhiều lỗi nữa, tìm tiếp xem nó được định nghĩa thế nào

=> Ok, cho nó thành False luôn cho êm chuyện

Ra ngoài test lại thôi: python env/lib/python2.7/site-packages/pgadmin4/pgAdmin4.py

Done, nếu nó có hỏi email và password, để đăng kí người dùng thì cứ điền vào. Mở http://127.0.0.1:5050/ lên xem thành quả thôi.

 

Cài thành công rồi, nhưng mỗi lần muốn chạy thì cứ phải python ~/pgAdmin4/env/lib/python2.7/site-packages/pgadmin4/pgAdmin4.py thì cũng chả vui vẻ gì mấy, mình sẽ tạo 1 cái script để run nó luôn

cd ~/pgAdmin4

touch pgAdmin4.sh

chmod +x pgAdmin4.sh

nano pgAdmin4.sh

paste đoạn này vào, lưu lại

#! /bin/bash
source ~/pgAdmin4/env/bin/activate
python ~/pgAdmin4/env/local/lib/python2.7/site-packages/pgadmin4/pgAdmin4.py & sleep 5; sensible-browser http://127.0.0.1:5050

Giờ ta có thể chạy nó ./pgAdmin4.sh

Từ đây ta có thể link file này vào system hay tạo 1 shortcut bỏ vào launcher hay desktop để dùng cho nó thuận tiện thôi.

===========================

À, ta cũng có thể cài bằng apt theo hướng dẫn này, cơ mà mình không thích lắm, vì nó cài vào folder hệ thống, mình thì không thích cài app vào mấy thư mục đó cho lắm, cài nào được thì mình sẽ cài thủ công vào thư mục home của mình, dễ quản lý :p

Leave a Reply

Your email address will not be published. Required fields are marked *