2010-03-19 4 views
2

J'ai un script qui sauvegarde notre base de données, qui contient plusieurs tables et vues construites à partir de tables.Importer des vues avec mysqldump dans le bon ordre

La commande utilisée est: mysqldump -u NomUtilisateur -ppassword -h nom_hôte NomDbase> dump.sql;

J'ai remarqué cependant que certaines définitions de vues sont sauvegardées avant les définitions des tables. Cela provoque un problème lors de la restauration en utilisant le classique

mysql -u NomUtilisateur -p < dump.sql

Comme quand il essaie de créer la vue, le tableau dont il a besoin n'existe pas encore. Il est possible de modifier les fichiers de vidage à restaurer, mais je me demandais:

Y at-il un moyen de s'assurer que mysqldump sauvegarde les tables et les vues dans le bon ordre? Ou existe-t-il un moyen de restaurer à partir d'un cliché qui trouvera les bonnes tables à créer en premier (ou créer des tables temporaires saines)?

Modifier pour la version: mysqldump Ver 10,11 Distrib 5.0.51b, pour redhat-linux-gnu (x86_64)

+0

J'ai un problème similaire causé par un de mes points de vue étant dépendante d'une autre vue, et ainsi de l'ordre des points de vue des questions – mcmillab

Répondre

2

Dans mon expérience, mysqldump met toujours les déclarations "créer vue" à la fin, après tout les instructions "create table". Donc, je ne suis pas sûr de savoir pourquoi vous avez un problème. Cela étant dit, si vous importez le cliché avec l'option -f, cela devrait résoudre votre problème, car la vue "Créer" va générer une erreur, mais la vue doit toujours être créée et fonctionner correctement une fois que la table est en endroit.

Exemple:

mysql -f -u UserName -p < dump.sql 
+0

Bien que cela crée les bases de données bien, les vues sont toujours ignorés . On dirait que le problème pourrait être du côté de la décharge, je vais enquêter plus loin, merci! – Bushibytes

Questions connexes