web-dev-qa-db-fra.com

Comment utiliser mysqldump pour exporter uniquement les commandes CREATE TABLE?

J'essaie d'utiliser mysqldump pour exporter uniquement le schéma DB - pas de données, pas de commentaires SQL supplémentaires, juste le CREATE TABLE commandes. Voici ce que j'ai jusqu'à présent:

mysqldump -h localhost -u root -p --no-data --compact  some_db

Il réalise presque ce que je veux, mais je voudrais éliminer les lignes de "jeu de caractères" (celles comme les 3 premières lignes dans l'exemple de sortie ci-dessous). Existe-t-il une option mysqldump pour le faire?

/*!40101 SET character_set_client = @saved_cs_client */;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `foo` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `bar_id` int(11) DEFAULT NULL,
  `bazz` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=369348 DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `bar` (
...etc.

Voici mes informations de version, au cas où cela compte:

mysqldump Ver 10.13 Distrib 5.1.34, for Win32 (ia32)
mysql Ver 14.14 Distrib 5.1.34, for Win32 (ia32)
37
FMc

Cela utilise également grep, mais cela semble fonctionner:

mysqldump -d --compact --compatible=mysql323 ${dbname}|egrep -v "(^SET|^/\*\!)"

J'utilise:

Ver 10.11 Distrib 5.0.51a, pour debian-linux-gnu (x86_64)

29
AJ.

Voici la commande pour vider le schéma sans le jeu de caractères et AUTO_INCREMENT.

mysqldump -h localhost -u root -p --no-data  YOUR_DATABASE_HERE |egrep -v "(^SET|^/\*\!)" | sed 's/ AUTO_INCREMENT=[0-9]*\b//'

Voici la commande pour vider le schéma sans le jeu de caractères, AUTO_INCREMENT et les commentaires

mysqldump -h localhost -u root -p --no-data --compact YOUR_DATABASE_HERE |egrep -v "(^SET|^/\*\!)" | sed 's/ AUTO_INCREMENT=[0-9]*\b//'
10
Xavier John
mysql> SHOW CREATE TABLE mytablename;
6
Mathdoy
mysqldump --compact --no-set-names --skip-opt --no-data DB | sed "/ SET /d"
4

Avez-vous essayé l'option --skip-comments mentionnée dans le manuel? Aide-t-il?

http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html#option_mysqldump_comments

1
Liz Albin
0
nexneo