Je travaille avec des bases de données MySQL. Pour simplifier le problème, disons que j'ai deux environnements: le local (développement) et la télécommande (mode de production). P>
Dans la base de données, j'ai des tables contenant des données de configuration. P>
Comment puis-je automatiser proprement la livraison du mode de développement au mode de production lorsque je modifierai le schéma de la base de données et le contenu des tables de configuration? p>
Par exemple, je pointai manuellement en effectuant une difforme entre les bases de données locales et distantes. Mais, je trouve cette méthode pas si propre et je crois qu'il y a une bonne pratique permettant cela. P>
4 Réponses :
Cela pourrait être utile dans les cas où vous avez plusieurs environnements et plusieurs développeurs faisant des changements de schéma très souvent et en utilisant php .. https://github.com/davejkiger/mysql-php-migrations p>
Oui. Fonctionne bien bien pour nous. Tous les changements de schéma sont stockés avec un format particulier lisible par le script de migration et une fois que le script est exécuté, le DB est exécuté et applique les modifications. Il dispose de certaines options décentes pour supporter des environnements de développement variables. Par exemple, chaque environnement peut stocker les scripts dans différents chemins et vous pouvez spécifier un paramètre de chemin lors de l'exécution de la migration Script.
Dans la plupart de mes projets, j'utilise Sqlalchemy (un outil Python pour gérer DB plus un orj). Si vous avez une expérience (peu plus que débutant) avec Python, je vous recommande vivement de l'utiliser. Vous pouvez vérifier Cet outil avec un peu d'aide de que . Ceci est également très utile pour la migration de votre dB sur d'autres RDBMS (par exemple, MySQL à Postgres ou Oracle). P>
J'ai vu Liquibase http://www.liquibase.org/ beaucoup dans les environnements Java. p>
Introduit le paramètre "Version" pour votre base de données. Cette version doit être écrite quelque part dans votre code et quelque part dans votre base de données. Votre code fonctionnera avec la base de données uniquement s'ils ont des versions égales p> li>
Créez une enveloppe autour de votre connexion MySQL. Cet emballage doit vérifier les versions et si les versions ne sont pas compatibles, il devrait commencer la mise à niveau. P> li>
"Mise à niveau" est un processus d'application séquentielle appliquant la liste des fichiers * .sql avec des commandes SQL, qui déplaceront votre base de données d'un état à un autre. Il peut s'agir de changements de schéma ou de commandes de manipulation de données. P> li>
Lorsque vous faites quelque chose avec la base de données, faites-le uniquement en ajoutant un nouveau fichier * .SQL et une version incrémentation. p> li>
En conséquence, lorsque vous déployez votre base de données du développement Enviroment à la production, votre base de données sera automatiquement mise à niveau de la même manière que celle mise à niveau pendant le développement. P> LI> ul>
Je ne pouvais pas donner la prime "manuellement" car il n'y avait pas de réponse précise à mes besoins spécifiques. Cependant, les suggestions sont très bonnes. Merci.