sql >> Base de Datos >  >> RDS >> PostgreSQL

Error:importación de la base de datos de Postgres en el contenedor docker

Configurar un montaje de volcado de base de datos

Deberá montar el volcado en el contenedor para poder acceder a él. Algo como esto en docker-compose.yml:

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

Cree un directorio local llamado db_dump y coloque su db_dump.gz archivo allí.

Iniciar el contenedor de la base de datos

Usa POSTGRES_DB en el entorno (como mencionó en su pregunta) para crear automáticamente la base de datos. Iniciar db por sí mismo, sin el servidor de rieles.

docker-compose up -d db

Importar datos

Espere unos segundos para que la base de datos esté disponible. Luego, importe sus datos.

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

También puede crear un script para hacer esta importación, pegarlo en su imagen y luego usar un solo comando docker-compose para llamarlo. O puede hacer que su secuencia de comandos de punto de entrada verifique si hay un archivo de volcado presente y, de ser así, descomprímalo e impórtelo... lo que necesite hacer.

Iniciar el servidor de rieles

docker-compose up -d web

Automatizando esto

Si está haciendo esto a mano para preparar una nueva configuración, entonces ya está. Si necesita automatizar esto en una cadena de herramientas, puede hacer algunas de estas cosas en un script. Simplemente inicie los contenedores por separado, haga la importación de db en el medio y use sleep para cubrir cualquier retraso en el inicio.