Est-il possible d'utiliser la base de données MS VS Project comme une solution complète pour la base de données versioning?

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

Question

Dans notre projet, nous avons plusieurs bases de données de production et de nombreux développeurs. Chaque base de données de production représente une « version sous-projet / localisation ». Nous utilisons SQL Server 2008.

Alors, je dois développer la base de données en utilisant la stratégie versioning projet MS Visual Database Studio. J'ai lu beaucoup d'articles sur la base de données et des projets versioning de bases de données, mais il me reste beaucoup de questions:

  1. Comment les développeurs doivent mettre en œuvre leurs changements de db projet? (Meilleures pratiques)

  2. Comment générer la pratique 100% "Dernière version" script deploy sans intervention humaine (sauter certains objets, réécrire certains changements, etc)?

  3. Comment gérer les changements de données avec MS Projet de base de données Visual Studio? je savoir sur les scripts / pré-post-Deploy, mais je pense qu'il ne peut pas résoudre ce problème. (Exemple: Je dois remap une autre dans le tableau).

serait "solution idéale":

  1. Les développeurs génère et maintient la base de données de projet pour la base de données [ProductionDB].

  2. Avec la nouvelle version que je déploie la base de données du projet au [ProductionDB] avec tout le nécessaire les changements.

  3. Les développeurs change Project Database et écrit des scripts de manipulation de données pour des changements concrets.

  4. Avec la nouvelle version que je déploie la base de données du projet au [ProductionDB] avec toutes les modifications nécessaires.

Ainsi, la dernière question: Est-il à utiliser la base de données posible projet aux fins décrites ci-dessus ou quelqu'un utilise le scénario / solution similaire

?

PS: Je l'ai déjà lu des discussions suivantes:

  1. Base de données change versioning [fermé]
  2. Comment faire la version I my MS base de données SQL dans SVN?
  3. Vous recherchez une solution pour la base de données versioning
  4. Est-il un système de contrôle de version pour la structure de base de données changements?
Était-ce utile?

La solution

projet de base de données est précisément utilisé pour la plupart des raisons que vous avez mentionnées ici -

  1. Les développeurs la caisse juste les fichiers de script de base de données, apportez les modifications et les rapportent. Rappelez-vous qu'ils vont changer les fichiers .sql et non pas directement les objets présents dans une base de données de dev. Donc, si vous devez ajouter deux colonnes à une table de base de données, vous allez modifier le script de création de table pour cette table, et ne pas écrire un script alter pour cette table.

  2. Si vous avez la cible ancienne version de schéma DB - vous pouvez simplement déployer ce projet avec les derniers fichiers à cette base de données et un script de déploiement se créé (avec les déclarations alter nécessaires). Il y a un paramètre de projet qui vous permet d'opter si le script de déploiement doit également être exécuté contre le db lorsque vous « Deploy ».

  3. Le script de déploiement peut être un livrable qui est testé séparément contre une copie de prod et prod appliquée à un patch.

A propos des scripts de manipulation de données, je ne suis pas très sûr, mais pour toutes les autres fins que vous avez mentionné, un projet de base de données est parfait.

Autres conseils

Ce que vous avez décrit est la raison d'être du projet de base de données.

Pour répondre à vos questions:

  1. Il est au développeur. Vous pouvez travailler en studio visuel et éditer les fichiers de projet directement ou modifier une copie en direct de la base de données en Gestion Studio schéma utilisation comparer VS pour synchroniser les modifications dans le projet. Je l'ai utilisé pendant quelques mois et trouve à la fois fin de travail, bien que je tendance à modifier les fichiers de projet directement plus souvent.

  2. Déploiement du projet génère dernière version si vous cochez la case pour laisser tomber le db de destination première. Vous pouvez le faire sans intervention humaine en appelant VSDBCMD pendant votre build

  3. Les pré / post scripts de déploiement sont destinés à tout ce que vous faites allusion. Un exemple serait de sélectionner toutes les données d'une table dans une table temporaire et tronquer au cours de la pré-deploy, laissez la poignée de projet, la migration du schéma, puis l'ajouter à nouveau lors de la post-déploiement. Cela peut se compliquer, mais ce problème n'a jamais été facile à résoudre.

Hope this helps.

La question des données est difficile à résoudre. Chez Red Gate, nous avons eu de nombreuses demandes de cela pour notre SQL outil contrôle de code source , qui a des parallèles avec VS Projets de base de données. Les bonnes nouvelles sont que nous ajoutons activement le soutien pour cela, et devrait avoir un début de construction d'essayer avant Noël. Si vous êtes intéressé, inscrivez-vous simplement pour les notifications à l'accès rapide http://www.surveymk.com/s / SqlSourceControl_EapSignup . Nous aimerions recevoir vos commentaires.

Vous voudrez peut-être jeter un oeil à l'open source BSN ModuleStore boîte à outils , qui essaie de mettre en œuvre ce flux de travail (et il ne fait faire aussi plus de cela).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top