Как я могу исключить данные для определенных таблиц, но сохранить структуру с mysqldump? - PullRequest
9 голосов
/ 28 января 2011

Я делаю обычный дамп базы данных, которая использует базу данных для ведения журнала. Мне нужно создать команду mysqldump, которая выводит все данные из базы данных, но исключает информацию о строках для таблиц журнала.

Я вижу параметр no-data , но кажется, что он не поддерживает выбор только определенных таблиц.

Ответы [ 2 ]

8 голосов
/ 28 января 2011

вы можете комбинировать со сценарием оболочки, чтобы помочь лучше

#/bin/bash

# dump all except for table log
tables=$(mysql -N <<< "show tables from your_db" | grep -Ev "^log$" | xargs); 
mysqldump your_db $tables > backup.sql

# dump structure for table log
mysqldump -d your_db log >> backup.sql
8 голосов
/ 28 января 2011

Выполнить 2 команды. Одна, где вы выводите список всех таблиц, для которых вы хотите создать полный дамп, другая, где вы записываете только определение таблицы

#structure only
mysqldump -d -q mydb table1 table2 table3

#all data too
mysqldump -q mydb table4 table5 table6
...