sql >> Database teknologi >  >> RDS >> PostgreSQL

Fejl:Postgres database import i docker container

Opsæt en database dump mount

Du skal montere lossepladsen i beholderen, så du kan få adgang til den. Noget som dette i docker-compose.yml:

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

Lav en lokal mappe med navnet db_dump og placer din db_dump.gz fil der.

Start databasebeholderen

Brug POSTGRES_DB i miljøet (som du nævnte i dit spørgsmål) for automatisk at oprette databasen. Start db af sig selv uden rails-serveren.

docker-compose up -d db

Importér data

Vent et par sekunder, indtil databasen er tilgængelig. Importer derefter dine data.

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

Du kan også bare lave et script for at udføre denne import, sætte det fast i dit billede og derefter bruge en enkelt docker-compose-kommando til at kalde det. Eller du kan få dit entrypoint-script til at tjekke, om en dump-fil er til stede, og i så fald udpakke den og importere den... hvad end du skal gøre.

Start rails-serveren

docker-compose up -d web

Automatisk dette

Hvis du gør dette i hånden for at forberede en ny opsætning, så er du færdig. Hvis du har brug for at automatisere dette til en værktøjskæde, kan du gøre nogle af disse ting i et script. Bare start containerne separat, lav db-importen ind imellem, og brug sleep for at dække eventuelle opstartsforsinkelser.



  1. Sådan grupperer du forskellige fora i PHP-kategorier

  2. Tegnkodningsproblem

  3. Får en mærkelig fejl, SQL Server-forespørgsel ved hjælp af `WITH`-klausul

  4. JPA - Indstilling af enhedsklasseegenskab fra beregnet kolonne?