PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Kesalahan:Impor basis data Postgres dalam wadah buruh pelabuhan

Menyiapkan mount dump database

Anda harus memasang dump ke dalam wadah sehingga Anda dapat mengaksesnya. Sesuatu seperti ini di docker-compose.yml:

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

Buat direktori lokal bernama db_dump dan tempatkan db_dump.gz . Anda file di sana.

Mulai wadah basis data

Gunakan POSTGRES_DB di lingkungan (seperti yang Anda sebutkan dalam pertanyaan Anda) untuk secara otomatis membuat database. Mulai db dengan sendirinya, tanpa server Rails.

docker-compose up -d db

Impor data

Tunggu beberapa detik hingga database tersedia. Kemudian, impor data Anda.

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

Anda juga dapat membuat skrip untuk melakukan impor ini, menempelkannya di gambar Anda, dan kemudian menggunakan satu perintah docker-compose untuk memanggilnya. Atau Anda dapat meminta skrip titik masuk Anda memeriksa apakah ada file dump, dan jika demikian, unzip dan impor... apa pun yang perlu Anda lakukan.

Mulai server Rails

docker-compose up -d web

Mengotomatiskan ini

Jika Anda melakukan ini dengan tangan untuk persiapan penyiapan baru, maka Anda selesai. Jika Anda perlu mengotomatiskan ini menjadi rantai alat, Anda dapat melakukan beberapa hal ini dalam skrip. Mulai saja wadah secara terpisah, lakukan impor db di antaranya, dan gunakan sleep untuk menutupi penundaan startup.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perbarui stempel waktu saat baris diperbarui di PostgreSQL

  2. Otentikasi pengguna dan kata sandi PostgreSQL tanpa basis data

  3. Menjalankan total ... dengan twist

  4. Batasan postgres

  5. Bagaimana cara memuat data ke dalam panda dari database besar?