sql >> Database >  >> RDS >> PostgreSQL

Fout:Postgres-database importeren in docker-container

Een databasedump-mount instellen

U moet de dump in de container monteren zodat u er toegang toe hebt. Iets als dit in docker-compose.yml:

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

Maak een lokale map met de naam db_dump en plaats uw db_dump.gz bestand daar.

Start de databasecontainer

Gebruik POSTGRES_DB in de omgeving (zoals u in uw vraag hebt vermeld) om de database automatisch te maken. Start db op zichzelf, zonder de rails-server.

docker-compose up -d db

Gegevens importeren

Wacht een paar seconden totdat de database beschikbaar is. Importeer vervolgens uw gegevens.

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

Je kunt ook gewoon een script maken om deze import te doen, dat in je afbeelding plakken en dan een enkele docker-compose-opdracht gebruiken om dat aan te roepen. Of je kunt je entrypoint-script laten controleren of er een dumpbestand aanwezig is, en zo ja, pak het uit en importeer het... wat je ook moet doen.

Start de rails-server

docker-compose up -d web

Dit automatiseren

Als je dit met de hand doet voor het voorbereiden van een nieuwe setup, dan ben je klaar. Als u dit in een toolchain moet automatiseren, kunt u sommige van deze dingen in een script doen. Start gewoon de containers afzonderlijk, voer tussendoor de db-import uit en gebruik sleep om eventuele opstartvertragingen te dekken.



  1. Oracle kritieke patch-update – oktober 2020

  2. Hernoem een ​​door de gebruiker gedefinieerd gegevenstype in SQL Server (T-SQL)

  3. Ampersand-operator (&) in een SQL Server WHERE-clausule

  4. Criteria zoeken op basis van TextField en een lijstmenu