Comment puis-je inclure ma base de données dans le processus d'intégration continue?

StackOverflow https://stackoverflow.com/questions/1361010

  •  20-09-2019
  •  | 
  •  

Question

S'il vous plaît excusez-moi, aujourd'hui est mon premier jour à essayer de configurer un environnement de CI à l'aide TeamCity. Je développe une application ASP.NET/Sql Server et jusqu'à présent si bon. MSBuild est mon fournisseur.

Je voudrais savoir quelles sont les options quand il s'agit de faire automatiquement des changements à ma base de données sûr locale sont téléchargées sur le serveur de test dans le cadre du processus d'intégration. Maintenant, je ne suis pas trop sûr que je veux aller dans le sens de DBGhost pour synchroniser automatiquement les modifications du schéma, je serais heureux de simplement remplacer la base de données sur le serveur de test avec une copie de ma base de données locale.

Quelles sont mes options ici?

edit: une enquête plus approfondie montre les produits Redgate SQL sont bons pour cela. Ils ne coûtent pas cher cependant. Ils ont une belle livre blanc sur l'utilisation de leurs produits dans un processus d'intégration continue: http: // téléchargements .red-gate.com / HelpPDF / ContinuousIntegrationForDatabasesUsingRedGateSQLTools.pdf

Était-ce utile?

La solution

Tout d'abord, je pense que votre base de données devrait être inclus dans votre stratégie de contrôle de code source. Les principes de base pour y parvenir ont été magnifiquement résumé en K. Scott Allen série . Vous pouvez également consulter évolutionnaire Database Design par Martin Fowler . Et pour plus d'informations pratiques, vérifier les réponses Comment devriez-vous construire votre base de données de contrôle de code source? .

Comme je l'ai écrit dans ma réponse , je maintiens deux ensembles de scripts: un jeu qui peut construire la base de données à partir de zéro, et qui peut mettre à jour une base de données d'une version à la dernière. Dans le cadre d'une stratégie de CI:

  • La base de données sur le serveur CI doit être reconstruit à partir de zéro en utilisant ces scripts. Vous pouvez alors vérifier que vos scripts sont en état de marche.
  • Dans un monde parfait, je devrais être en mesure d'effectuer une mise à niveau de la version N-1 à la version N de la base de données, et de comparer le schéma obtenu au schéma de la base de données précédente. Je travaille toujours là-dessus ...
  • Les données de test doivent être injectés dans la base de données, ce qui permet pour les tests unitaires de votre application à effectuer (vous pouvez utilisation bcp pour cela).
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top