Lập trình Postgresql trên MacOSX

30 tháng 09, 2021 - 1496 lượt xem

Bài này tôi ghi chép lại các bước để bạn lập trình CSDL Postgresql với công cụ psql và DBeaver

1. Khởi động Postgresql bằng Docker

Ưu điểm khởi động Postgresql bằng Docker là bạn có thể thử nhiều phiên bản Postgresql khác nhau mà không phải cài đặt vào hệ điều hành, việc bật tắt cũng rất dễ dàng.

Thử chạy phiên bản Postgresql 14 release candidate mới nhất

$ docker run --name postgres14 -e POSTGRES_PASSWORD=123 -p 5432:5432 -d postgres:14rc1

hoặc chạy phiên bản Postgresql đóng gói trong hệ điều hành Alpine

$ docker run --name postalpine -e POSTGRES_PASSWORD=123 -p 5433:5432 -d postgres:alpine

2. Cài đặt thư viện Postgresql client

Để lập trình Postgresql hiện nay nhiều lập trình viên chọn Docker để khởi động CSDL Postgresql. Tuy nhiên bạn vẫn cần một native client psql trong trường hợp cần backup, restore database. Đây là cách để chỉ cài phần mềm psql trên MacOSX mà không cần phải cài cả Postgresql server

$ brew install libpq
$ brew link --force libpq

Kiểm tra phiên bản psql mới cài đặt

$ psql --version
psql (PostgreSQL) 13.4

3. Restore CSDL dvd_rental

Sau khi đã có server và client, bạn sẽ mua thử nghiệm một CSDL sẵn có một số bảng và dữ liệu để học cách truy vấn. Bạn nên bắt đầu với CSDL mẫu dvd_rental.
Vào https://www.postgresqltutorial.com/wp-content/uploads/2019/05/dvdrental.zip để tải về file dvdrental.zip

Dùng phần mềm Keka để chuyển sang file dvdrental.tar. Chuyển tới thư mục chứa file dvdrental.tar thực hiện khôi phục.

$ pg_restore -h 192.168.1.9 -p 5433 -U postgres -d dvdrental dvdrental.tar

Giải thích các tham số:

  • -h: host Postgresql đang chạy, có thể dùng địa chỉ IP
  • -p: port Postgresql đang chạy, mặc định là 5432, trường hợp này tôi đang chạy ở cổng 5433
  • -U: tên user kết nối vào Postgresql
  • -d: tên database sẽ khôi phục dữ liệu
  • dvdrental.tar: file tar nén dữ liệu back up
    DVD Rental

4. Dùng DBeaver để xem CSDL dvd_rental vừa khôi phục

Bản DBeaver community có thể tải về ở đây https://dbeaver.io. DBeaver hay hơn Pgadmin hay Navicat Premium ở chức năng:

  • Pgadmin: thiết kế bảng ERD mới ở bản beta, không thể chọn xem từng bảng.
  • Navicat Premium: chỉ có thể xem thiết kế ERD cho những bảng thuộc cùng một schema. Với CSDL nhiều schema thì không làm được.
  • DBeaver: có thể chọn bảng ở nhiều schema, có thể di chuyển các bảng hoặc chọn Auto Arrange để sắp xếp lại các bảng trên màn hình sao cho các đọna liên kết giữa các bảng là ngắn nhẩt. Bản Community bạn chỉ có thể tạo bảng, tạo quan hệ rồi xem trên ERD chứ không thể thiết kế bảng trực tiếp trên ERD như phần mềm Erwin.

DBBeaver

DBeaver cũng hỗ trợ các kiểu cột dữ liệu đặc thù trong Postgresql như array, json, jsonb

Các kiểu cột đặc biệt

5. Tóm lại

  1. Bạn nên dùng Docker để khởi động Postgresql Server trong môi trường lập trình
  2. Có thể cài đặt psql client mà không cần cài cả Postgresql Server
  3. Nên dùng DBeaver thay thế cho Pgadmin vì chức năng xem quan hệ ERD tốt hơn.

Bình luận

avatar
Trương Văn Tuấn 2021-10-03 14:44:24.083951 +0000 UTC

Thêm một lựa chọn hiệu quả trên macos https://postgresapp.com/

Có thể tạo nhiều phiển bản postgresql.

Avatar
avatar
Trương Văn Tuấn 2021-10-04 05:29:59.763736 +0000 UTC

Đoạn restore CSDL, có thể dẫn đến thư mục dvdrental được giải nén từ tệp zip mà không cần chuyển qua tar. Em đã làm vậy và thành công.

Avatar
* Vui lòng trước khi bình luận.
Ảnh đại diện
  0 Thích
0