PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Lỗi:Nhập cơ sở dữ liệu Postgres trong vùng chứa docker

Thiết lập mount kết xuất cơ sở dữ liệu

Bạn sẽ cần gắn kết xuất vào vùng chứa để có thể truy cập nó. Một cái gì đó tương tự như thế này trong docker-compos.yml:

db:
  volumes:
    - './db_dump:/db_dump'

Tạo một thư mục cục bộ có tên db_dump và đặt db_dump.gz của bạn nộp ở đó.

Khởi động vùng chứa cơ sở dữ liệu

Sử dụng POSTGRES_DB trong môi trường (như bạn đã đề cập trong câu hỏi của mình) để tự động tạo cơ sở dữ liệu. Bắt đầu db tự nó, không có máy chủ rails.

docker-compose up -d db

Nhập dữ liệu

Chờ vài giây để cơ sở dữ liệu khả dụng. Sau đó, nhập dữ liệu của bạn.

docker-compose exec db gunzip /db_dump/db_dump.gz
docker-compose exec db psql -U postgres -d dbname -f /db_dump/db_dump.gz
docker-compose exec db rm -f /db_dump/db_dump.gz

Bạn cũng có thể chỉ cần tạo một tập lệnh để thực hiện việc nhập này, dán tập lệnh đó vào hình ảnh của bạn, sau đó sử dụng một lệnh docker-soạn duy nhất để gọi điều đó. Hoặc bạn có thể kiểm tra tập lệnh entrypoint của mình xem có tệp kết xuất hay không, và nếu có, hãy giải nén nó và nhập nó ... bất cứ điều gì bạn cần làm.

Khởi động máy chủ rails

docker-compose up -d web

Tự động hóa việc này

Nếu bạn đang làm việc này bằng tay để chuẩn bị cho một thiết lập mới, thì bạn đã hoàn tất. Nếu bạn cần tự động hóa điều này thành chuỗi công cụ, bạn có thể thực hiện một số công việc này trong một tập lệnh. Chỉ cần khởi động các vùng chứa riêng biệt, thực hiện nhập db ở giữa và sử dụng sleep để giải quyết mọi sự chậm trễ khi khởi động.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. lỗi đa tham số với datetime_select

  2. Chức năng dùng mãi mãi để chạy cho số lượng lớn các bản ghi

  3. Nhập tệp hình dạng trong postgresql trong Linux bằng pgadmin 4

  4. Đếm theo ngày sớm nhất được tìm thấy từ một liên kết bên trong?

  5. Truy vấn XPath thành dữ liệu phân cấp, duy trì mối quan hệ tổ tiên - con cháu