Je cherche un moyen d'effectuer des déploiements quotidiens et de maintenir les scripts de la base de données en phase avec les versions.
Actuellement, nous avons une façon assez décente de déployer nos sources, nous avons une couverture de code unitaire, une intégration continue et des procédures de retour en arrière.
Le problème est de garder les scripts de la base de données en ligne avec une version. Tout le monde semble essayer le script sur la base de données de test puis l'exécuter en direct, lorsque les mappages ORM sont mis à jour (c'est-à-dire que les changements sont mis en direct), alors il prend la nouvelle colonne.
Le premier problème est qu'aucun des scripts ne DOIT être écrit quelque part, généralement tout le monde "tente" de les mettre dans un dossier Subversion mais certaines personnes plus paresseuses exécutent simplement le script en direct et la plupart du temps personne ne sait qui a fait quoi à la base de données.
Le deuxième problème est que nous avons 4 bases de données de test et qu'elles sont TOUJOURS en décalage et que la seule façon de les remettre vraiment en ligne est de faire une restauration à partir de la base de données active.
Je suis convaincu qu'un processus comme celui-ci doit être simple, direct et facile à utiliser afin d'aider les développeurs et non de les gêner.
Ce que je recherche, ce sont des techniques/idées qui permettent au développeur d'enregistrer facilement ses scripts de base de données afin qu'ils puissent être exécutés dans le cadre d'une procédure de lancement. Un processus que le développeur voudrait suivre .
Toute histoire, tout cas d'utilisation ou même un lien serait utile.
0 votes
Voir aussi stackoverflow.com/questions/468703/
0 votes
"Un processus que le développeur voudrait suivre" n'est pas la seule façon de résoudre l'objectif : vous pouvez verrouiller leur accès aux instances partagées, leur faire écrire des tests unitaires et leur faire écrire des scripts qu'un système automatisé exécutera et vérifiera. Ce n'est pas très agile, ce serait assez pénible, et selon le degré de draconisme, cela entraînerait probablement une baisse de moral, une mutinerie ou des subversions du processus. Mais c'est une autre façon de résoudre le problème. Vous pouvez atténuer une partie de la douleur en les laissant développer les changements de BD sur leurs propres boîtes au lieu d'une instance partagée.