Дамп структуры в Docker
Дамп структуры снимает описание таблиц и не кладёт в текст сами строки. Так переносят схему на другой стенд без копирования содержимого.
Сервис db
с паролем demo,
базой app
и томом dbdata
на mysql:9.7
описывают в compose.yaml:
services:
db:
image: mysql:9.7
environment:
MYSQL_ROOT_PASSWORD: demo
MYSQL_DATABASE: app
volumes:
- dbdata:/var/lib/mysql
volumes:
dbdata:
После подъёма в app
есть таблица notes
со строкой данных:
docker compose up -d
docker compose exec db mysql -uroot -pdemo app -e "CREATE TABLE notes (id INT PRIMARY KEY); INSERT INTO notes VALUES (1)"
У mysqldump
флаг --no-data
отключает вывод вставок.
Перенаправление на хост
пишет результат в shape.sql:
docker compose exec db mysqldump -uroot -pdemo --no-data app > shape.sql
В shape.sql
есть команды для notes,
но нет блоков INSERT:
данные из таблицы
в файл не уехали,
осталось только описание полей.
Заполните таблицу units в базе app строкой и сохраните только схему этой базы в layout.sql на хосте.
Проверьте, что в layout.sql нет вставок строк для units.