PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Грешка:Импортиране на база данни на Postgres в докер контейнер

Настройте монтиране на дъмп на база данни

Ще трябва да монтирате дъмпа в контейнера, за да имате достъп до него. Нещо подобно в docker-compose.yml:

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

Създайте локална директория с име db_dump и поставете своя db_dump.gz файл там.

Стартирайте контейнера на базата данни

Използвайте POSTGRES_DB в средата (както споменахте във вашия въпрос), за да създадете автоматично базата данни. Стартирайте db самостоятелно, без rails сървъра.

docker-compose up -d db

Импортиране на данни

Изчакайте няколко секунди, докато базата данни стане достъпна. След това импортирайте вашите данни.

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

Можете също така просто да направите скрипт, за да направите това импортиране, да го поставите в изображението си и след това да използвате една единствена команда за съставяне на docker, за да го извикате. Или можете да накарате вашия скрипт за входна точка да провери дали има дъмп файл и ако е така, да го разархивирате и импортирате... каквото трябва да направите.

Стартирайте rails сървъра

docker-compose up -d web

Автоматизиране на това

Ако правите това на ръка за подготовка на нова настройка, значи сте готови. Ако трябва да автоматизирате това във верига от инструменти, можете да направите някои от тези неща в скрипт. Просто стартирайте контейнерите поотделно, извършвайки db импортиране между тях и използвайте sleep за покриване на всички забавяния при стартиране.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Релси - вземете обекти на обекти С дубликати

  2. Статистика за покритието на кода

  3. Има ли някакъв начин PostgreSQL да не свива пунктуацията и интервалите при съпоставяне с помощта на език?

  4. Моля, препоръчайте най-добрата опция за групово изтриване

  5. Екраниране на имена на колони, подобни на ключови думи в Postgres