31 votes

Contrôle de version MySQL - Subversion

Vous vous demandez s'il est possible d'avoir un contrôle de version d'une base de données MySQL.

Je me rends compte de cette question a été posée avant toutefois le plus récent est presque il y a un an, et à changer les choses...

Le problème est que chaque développeur a apache/MySQL/PHP sur leurs propres ordinateurs à laquelle ils ont parfois de modifier la base de données. Son plutôt gênant si ils doivent envoyer un mail à tous les autres développeurs, puis modifier manuellement les serveurs de test de la base de données.

Comment gérez-vous ce problème?

Merci

16voto

awied Points 1153

Ce n'est pas un MySQL, solution en soi, mais nous avons eu beaucoup de succès avec un produit appelé liquibase. (http://www.liquibase.org/)

C'est une solution de migration, qui couvre de nombreux différents fournisseurs de bases de données, permettant à toutes les modifications de base de données à coder dans les fichiers de configuration, qui sont conservés dans la Subversion. Depuis, toute la configuration est conservée dans des fichiers XML, il est facile de fusionner les changements d'autres personnes dans la canalisation principale de script et il joue bien avec les étiquettes et les branches.

La base de données peut être mise à la révision en cours de niveau en exécutant la mise à jour de la base de données de la commande". La plupart des changements ont également la possibilité de revenir à un changement de base de données, ce qui peut être utile aussi. Je recommande la pratique qui consiste à faire en sorte que vous obtenez de courant avant de procéder à la migration, comme ce serait probablement plus simple.

Enfin, quand il s'agit d'une production de livraison, vous pouvez choisir de disposer de toutes les modifications de base de données de sortie plein de script SQL, donc il peut permettre aux Administrateurs de bases de données pour l'exécuter et de maintenir une séparation des fonctions.

Jusqu'à présent, il a travaillé comme un charme.

1voto

Nick Gorbikoff Points 3144

On utilise des Rails qui conserve tout changement dans les fichiers de migration. Je sais qu'un couple de frameworks PHP faire la même chose - Symphonie par exemple. Ainsi, lorsque toutes les modifications sont regroupées dans notre référentiel ( nous avons utilisateur mercurial - il suffit de voir tous les changements dans les migrations qui doivent ou ont été appliquées sur la base de données en cours de développement. Que la personne responsable de la production de rouleaux de code à la production, après une sauvegarde complète est effectuée. Toutefois, si vous n'avez pas utiliser un framework PHP qui prend soin de ce que, awied la suggestion semble très intéressant - je n'ai pas entendu de liquidbase avant, mais je vais certainement le vérifier.

1voto

Yves Vindevogel Points 11

Il existe un outil appelé iBatis, désormais appelé MyBatis, qui gère parfaitement les versions des bases de données.

Il faut un peu de travail pour avoir toutes vos modifications dans le script plutôt qu'avec un outil graphique, mais, si vous êtes familier avec le codage, ce n'est pas un problème.

Lorsque vous avez plusieurs bases de données (comme dev-test-prod), vous créez simplement 3 fichiers d'environnement et vous pouvez mettre à jour un environnement avec une seule instruction de ligne de commande.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X