2009-10-06 6 views
1

ok, disons que vous avez deux dbs. celui que vous utilisez comme modèle principal qui passe par diverses révisions, disons que nous sommes maintenant sur la révision 3. mais la seconde db est une copie du modèle tel qu'il était à la révision 1.Comment mettre à jour la structure d'une base de données MySQL complète?

parce que db 2 est en cours d'utilisation , vous ne voulez pas supprimer de tables, mais vous avez besoin de mettre à jour la structure de l'ensemble du db vers la dernière version de db 1.

est-il possible de procéder ainsi sans avoir à passer manuellement tous les mêmes changements encore et encore (sur plusieurs dbs à diverses versions) et sans perdre l'une des données?

Je sais que l'intégrité des données est le problème, car certaines données peuvent ne plus être valides, etc etc, mais n'y a-t-il pas un moyen de surcharger cela?

idéalement, je veux juste pouvoir utiliser le mysqldump de la structure de db 1 et remplacer toutes les tables en conflit dans db 2 avec les nouvelles versions de db 1 sans perdre toutes les données. S'il y a un moyen de le faire dans phpmyadmin, ce serait génial.

Répondre

2

Vous pouvez essayer MySQL workbench; il vous permet de

  1. Créer un schéma à partir d'une base de données MySQL.
  2. importer le schéma dans l'établi MySQL par ingénierie inverse la version db 3,
  3. , puis le comparer avec le schéma en version db 1 pour générer un script SQL alter.
+0

comment comparer les schémas dans workbench? – simonhamp

+0

File-> forward engineering-> create alter script. Ou quelque chose comme ça – Graviton

+0

@Graviton FYI, ce lien est à un produit Western Digital inexistant. https://www.mysql.com/products/workbench/ – toast

0

Soit votre connecteur DB le fait pour vous (certains frameworks Python peuvent faire évoluer une base de données), soit vous devez le faire manuellement.

Si vous devez le faire manuellement, la meilleure approche consiste à pouvoir créer toute la base de données avec des données provenant de scripts. Cela doit être entièrement automatique. Après avoir créé la version de base, vous appliquez script après script pour faire évoluer la base de données (modification des tables, etc.). Pour ce faire, effectuez des tests automatiques et vous pouvez migrer automatiquement la base de données lors de l'installation de la prochaine version sur le site d'un client.

Questions connexes