Восстановление дампа в Docker
Восстановление подаёт файл дампа на вход psql, и таблицы появляются в базе. Команды из текста выполняются на стороне базы, как если бы их вводили вручную по одной.
В каталоге проекта лежит
dump.sql
с описанием таблицы notes.
База app
уже создана переменной
POSTGRES_DB
в описании сервиса:
services:
db:
image: postgres:18
environment:
POSTGRES_PASSWORD: demo
POSTGRES_DB: app
volumes:
- dbdata:/var/lib/postgresql
volumes:
dbdata:
После фонового подъёма
файл с хоста подают
на стандартный ввод клиента
внутри сервиса db:
docker compose up -d
docker compose exec -T db psql -U postgres -d app < dump.sql
Флаг -T
у docker compose exec
нужен, чтобы команда
приняла файл
со стандартного ввода.
Без него оболочка compose
может не передать поток
с компьютера в процесс
внутри копии.
После заливки таблица
notes
появляется в базе app
и видна в списке объектов,
как после ручного создания.
Подготовьте на хосте файл seed.sql с таблицей tags и залейте его в базу app сервиса store на томе reload.
Убедитесь, что таблица tags отображается в базе app сервиса store после заливки.