2011-01-28 14 views
9

Robię zwykły zrzut bazy danych, która używa bazy danych do rejestrowania. Potrzebuję utworzyć polecenie mysqldump, które zrzuca wszystko z bazy danych, ale wyklucza informacje o wierszach dla tabel dziennika.Jak mogę wykluczyć dane dla niektórych tabel, ale zachować strukturę za pomocą mysqldump?

Widzę the no-data parameter, ale wydaje się, że nie obsługuje to wyboru tylko niektórych tabel.

+0

na Linux lub Windows? – ajreal

+1

@ajreal Linux. Czy to ma znaczenie? – mattalxndr

Odpowiedz

8

Wykonaj 2 polecenia. Jeden, w którym wymienione wszystkie tabele, które mają pełny zrzut, jeden gdzie zrzucić tylko definicja tabeli

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

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

można połączyć ze skryptem powłoki, aby pomóc lepiej

#/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 
Powiązane problemy