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