Comment synchroniser mon projet de base de données visualstudio avec ma base de données?

11

Je souhaite synchroniser mon schéma de base de données avec mon projet de base de données Visual Studio .dbproj.

En ce moment, j'utilise SSMS pour la plupart de mes travaux de développement de base de données, et je dois utiliser manuellement l'outil de comparaison de schémas de Visual Studio lorsque j'ai besoin de synchroniser le schéma db et le .dbproj. Pourquoi voudrais-je cela? parce que :

  • C'est le seul moyen de consigner les modifications
  • C'est le seul moyen d'appliquer les modifications
  • Si vous ne le faites pas, des problèmes de fusion se produiront lors de l'obtention des fichiers (en gros, si un "get latest" contient des modifications db sur les objets db que j'ai mis à jour sans les vérifier, une fusion ne sera pas déclenchée et il est facile de garder une trace de quelle version est laquelle)
  • C'est agréable de pouvoir utiliser les fonctionnalités de recherche de VisualStudio sur une version à jour du schéma
  • Il est agréable de pouvoir modifier les procédures stockées de VS (généralement lorsque vous avez renommé un fichier) en utilisant les résultats de la recherche.

Outre l'automatisation de l'outil de "comparaison de schémas" pour qu'il s'exécute toutes les 5 minutes (ce qui ne sonne guère comme une solution "propre"), existe-t-il des moyens d'y parvenir?

J'aimerais continuer à utiliser SSMS si possible, mais je suis également intéressé par les moyens de propager automatiquement les modifications apportées en utilisant les "connexions de l'explorateur de serveur / base de données" de Visual Studio au .dbproj.

Brann
la source
avez-vous trouvé un moyen de synchroniser votre projet de base de données avec SSMS?

Réponses:

4

SQL Server Management Studio est principalement un outil de gestion de SQL Server et, en tant que tel, n'est pas nécessairement conçu pour prendre en charge les scénarios que vous recherchez.

Visual Studio Team System 2008 Database Edition et Visual Studio Team System 2010 Pro / Ultimate incluent les outils de développement de base de données (VSDB) pour aider ceux qui disposent de ressources de base de données étendues à intégrer leur schéma de base de données / view / proc / etc. développement avec le développement de leur application.

VSDB vous permet d'effectuer une rétro-ingénierie des schémas de bases de données existants dans des projets Visual Studio afin de pouvoir contrôler à la source les fichiers de script par élément de schéma. Vous pouvez également modifier / créer des scripts de schéma SQL Server pour la création de pratiquement tous les éléments de schéma pris en charge par SQL 2005/2008/2010.

VSDB prend également en charge la possibilité de déployer des mises à jour de schéma de base de données complètes / partielles sur des bases de données vides / existantes où il effectue une énorme quantité de travail pour essayer d'appliquer uniquement les changements nécessaires pour modifier la base de données existante (si elle est présente) afin qu'elle reflète la structure de le projet de base de données VSDB source.

VSDB comprend également un certain nombre d'outils pour vous aider à comparer les schémas entre les projets DB et / ou DB et vous permet également de différencier et de fusionner le contenu des tables.

Cependant, notez que bien que cet ensemble d'outils soit pris en charge aujourd'hui, l'équipe a depuis été dissoute et le produit est en mode maintenance. Le groupe de produits SQL Server est désormais responsable de la création d'outils pour les développeurs et travaille dur pour cela :)

Richard Turner
la source
1
Je suis déjà un utilisateur des fonctionnalités de la base de données VS 2010. Mais je n'ai pas encore trouvé comment l'utiliser pour modifier instantanément mon projet de base de données et mon projet de base de données en même temps. Exécuter une comparaison de schéma après chaque modification est tout simplement trop compliqué ... :(
Brann
Ayant commencé à regarder VSDB hier, je trouve votre dernier paragraphe plutôt alarmant. On dirait que je ne devrais pas prendre la peine d'investir beaucoup de temps ou d'énergie ...?
Benjol
1

il y a deux façons que je connais avec les fonctionnalités ultimes de VS2010 pour le faire.

  1. Utilisez SSMS ou un autre outil pour modifier le schéma de base de données, puis exécutez la comparaison de schéma périodiquement (en fin de journée), puis importez les modifications de schéma dans le projet de base de données.
  2. Modifiez les fichiers de votre projet de base de données via VS, puis créez un package de déploiement qui s'exécute directement sur votre base de données ou génère un script à exécuter pour mettre à jour votre schéma dans la base de données.
Ryathal
la source
La deuxième solution est, à mon avis, la meilleure solution. Vous pouvez configurer un processus de déploiement qui ne prend qu'un seul clic. La modification de vos fichiers dans Visual Studio les supprimera automatiquement du contrôle de code source. J'ai travaillé avec la première méthode, mais il est difficile de toujours comparer les schémas. De plus, au moins pour moi, l'outil de comparaison de schémas bloque beaucoup Visual Studio.
Kris Harper