2011-10-06 4 views
0

J'ai testé une base de données dans MySQL pendant plusieurs mois en utilisant des suppressions manuelles, des mises à jour et d'autres requêtes. Il est juste de dire que la DB a été abusée. Je veux maintenant le télécharger sur mon serveur de production, mais je veux commencer avec une nouvelle copie. Y a-t-il un moyen de faire cela?Reconstruire une base de données de test dans une base de données de production

Je ne souhaite pas conserver de données. Je veux juste commencer par une bonne base de données qui n'a pas été abusée avec des mois de tests.

+0

Exécuter une sauvegarde du développement, sans données, et télécharger en direct, puis sauvegarder les tables statiques daya sur dev et télécharger pour vivre? – BugFinder

Répondre

1

Si vous utilisez mysqldump, indiquez le paramètre --no-data:

mysqldump --host=host --user=user --password=password --no-data db_name > structure.sql 

Cela va créer un nouveau fichier contenant structure.sql de la commande CREATE TABLE nécessaire.

Si vous disposez d'un autre outil d'administration permettant l'exportation, par ex. phpMyAdmin, vous devriez avoir une option pour laisser de côté les données et exporter uniquement la structure.

+0

J'utilise Navicat. Je vais jeter un coup d'oeil pour voir s'il y a une telle option - ce qui est plus que probable. – Mohamad

1

Si vous ne trouvez pas l'option dans votre logiciel DB Manager, vous pouvez toujours utiliser TRUNCATE TABLE <table_name>; pour chaque table. Cela nettoie la table et renvoie le compteur AUTO_INCREMENT à 0 (si vous l'utilisez). Si vous utilisez les clés étrangères, vous pouvez envelopper toute votre requête troncature comme ceci:

SET FOREIGN_KEY_CHECKS=0; 

TRUNCATE TABLE <table_name1>; 
TRUNCATE TABLE <table_name2>; 

SET FOREIGN_KEY_CHECKS=1; 

pour éviter les chèques étrangers.

Questions connexes