Ответ 1
Это должно работать в оболочке:
for x in `mysql --skip-column-names -u [username] -p[password] [dbname] -e 'show tables;'`; do
mysqldump -u [username] -p[password] [db name] $x > "$x.sql"
done
Как я могу сбрасывать каждую таблицу mysql отдельно с помощью mysqldump?
Справочная информация. Я хочу отслеживать эти дампы с помощью git и используя крюк pre-commit
Пример: У меня есть схема с 10 таблицами (таблица1 - таблица10). теперь я хочу файл для таблицы: table1.sql table2.sql ...
Итак, как это работает?
Snd почему stackoverflow не нравится мой вопрос?
Это должно работать в оболочке:
for x in `mysql --skip-column-names -u [username] -p[password] [dbname] -e 'show tables;'`; do
mysqldump -u [username] -p[password] [db name] $x > "$x.sql"
done
надеюсь, что это поможет
mysqldump --user=dbuser --password --tab=~/output/dir dbname
у вас будет один файл tablename.sql, содержащий каждую схему таблицы (create table statement) и файл tablename.txt, содержащий данные.
mysqldump --user=dbuser --password --no-data --tab=~/output/dir dbname
если вы хотите создать дамп только с помощью схемы, добавьте флаг -no-data:
mysqldump -t -u [username] -p test mytable
удалит таблицу mytable из теста базы данных.
Если вы хотите автоматизировать процедуру, вам нужно написать script, что выбирает для вас таблицы_имя из схемы и применяет операцию выше для каждой таблицы. Вы также можете автоматизировать операции git.