Я создал структуру postgreSQL db локально, я хочу, чтобы эта структура была структурой таблицы экземпляра postgreSQL, который я буду запускать из экземпляра docker (без ручного восстановления дампа). Я сохранил структуру в дампе и обычно восстанавливаю ее, используя psql myDB < myDB_dump.sql
.
У меня есть рабочий PostgreSQL экземпляр, работающий на Docker - с myDB и пользователем, который может получить доступ к базе данных.
docker -compose.yml:
version: '3'
services:
db:
image: postgres
restart: unless-stopped
ports:
- ${DB_PORT}:${DB_PORT}
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USER}
POSTGRES_DB: ${DB_DATABASE}
Dockerfile:
# psql
RUN apt-get update && apt-get install -y postgresql-client
FROM postgres
ADD init.sql /docker-entrypoint-initdb.d
RUN ./scripts/init_db.sh
init. sql:
CREATE USER my_user WITH PASSWORD my_user;
CREATE DATABASE myDB;
GRANT ALL PRIVILEGES ON DATABASE myDB TO my_user;
Лучшее способ реализовать существующую структуру таблицы в этом экземпляре docker через файл дампа, если да: как? Есть ли лучший способ скопировать структуру БД? Если да, то как лучше всего?