Wie kann ich mein Visualstudio-Datenbankprojekt mit meiner Datenbank synchronisieren?

11

Ich möchte, dass mein Datenbankschema mit meinem Visual Studio .dbproj-Datenbankprojekt synchronisiert wird.

Im Moment verwende ich SSMS für den größten Teil meiner Datenbankentwicklungsarbeit und muss das Schema-Vergleichstool von Visual Studio manuell verwenden, wenn das Datenbankschema und die .dbproj synchronisiert werden sollen. Warum sollte ich das wollen? weil :

  • Nur so können Änderungen eingecheckt werden
  • Nur so können Änderungen übernommen werden
  • Wenn Sie dies nicht tun, treten beim Abrufen von Dateien einige Zusammenführungsprobleme auf (wenn ein "Get Recent" einige Datenbankänderungen an Datenbankobjekten enthält, die ich aktualisiert habe, ohne sie auszuchecken, wird keine Zusammenführung ausgelöst, und dies ist einfach Verfolgen Sie, welche Version welche ist.)
  • Es ist schön, die Suchfunktionen von VisualStudio für eine aktuelle Version des Schemas verwenden zu können
  • Es ist schön, gespeicherte Prozeduren von VS (normalerweise, wenn Sie eine Datei umbenannt haben) mithilfe der Suchergebnisse ändern zu können.

Gibt es neben der Automatisierung des Tools "Schema Compare", das alle 5 Minuten ausgeführt wird (was kaum nach einer "sauberen" Lösung klingt), Möglichkeiten, dies zu erreichen?

Ich würde SSMS nach Möglichkeit weiterhin verwenden, bin aber auch an Möglichkeiten interessiert, Änderungen, die mit den "Server Explorer / Datenbankverbindungen" von Visual Studio vorgenommen wurden, automatisch an die .dbproj weiterzugeben.

Brann
quelle
Haben Sie eine Möglichkeit gefunden, Ihr Datenbankprojekt mit SSMS zu synchronisieren?

Antworten:

4

SQL Server Management Studio ist in erster Linie ein SQL Server MANAGEMENT-Tool und wird daher nicht unbedingt zur Unterstützung der von Ihnen gesuchten Szenarien entwickelt.

Visual Studio Team System 2008 Database Edition und Visual Studio Team System 2010 Pro / Ultimate enthalten die Database Developer Tools (VSDB), mit denen Benutzer mit umfangreichen Datenbank-Assets ihr Datenbankschema / view / proc / etc. Entwicklung mit ihrer App-Entwicklung.

Mit VSDB können Sie vorhandene DB-Schemas in Visual Studio-Projekte zurückentwickeln, sodass Sie Skriptdateien pro Schemaelement per Quellcodeverwaltung steuern können. Sie können auch SQL Server-Schemaskripte für die Erstellung praktisch aller von SQL 2005/2008/2010 unterstützten Schemaelemente ändern / erstellen.

VSDB unterstützt auch die Möglichkeit, vollständige / teilweise DB-Schemaaktualisierungen für leere / vorhandene DBs bereitzustellen, wobei ein RIESIGER Arbeitsaufwand erforderlich ist, um nur die Änderungen anzuwenden, die zum Ändern der vorhandenen DB (falls vorhanden) erforderlich sind, sodass sie die Struktur von widerspiegeln das Quell-VSDB-Datenbankprojekt.

VSDB enthält auch eine Reihe von Tools, mit denen Sie Schemas zwischen DBs und / oder DB-Projekten vergleichen und Tabelleninhalte unterscheiden und zusammenführen können.

Beachten Sie jedoch, dass dieses Toolset zwar heute unterstützt wird, das Team jedoch inzwischen aufgelöst wurde und sich das Produkt im Wartungsmodus befindet. Die SQL Server-Produktgruppe besitzt nun die Verantwortung für die Erstellung von Tools für Entwickler und arbeitet hart daran, genau das zu tun :)

Richard Turner
quelle
1
Ich bin bereits Benutzer der VS 2010-Datenbankfunktionen. Ich muss jedoch noch herausfinden, wie ich damit sofort mein Datenbankprojekt und mein Datenbankprojekt gleichzeitig ändern kann. Das Ausführen eines Schema-Vergleichs nach jeder einzelnen Änderung ist einfach zu mühsam ... :(
Brann
Nachdem ich gestern angefangen habe, mir VSDB anzuschauen, finde ich Ihren letzten Absatz ziemlich alarmierend. Klingt so, als sollte ich nicht viel Zeit oder Energie investieren ...?
Benjol
1

Es gibt zwei Möglichkeiten, die ich mit den ultimativen VS2010-Funktionen kenne, um dies zu tun.

  1. Verwenden Sie SSMS oder ein anderes Tool, um das DB-Schema zu bearbeiten. Führen Sie dann den Schemavergleich regelmäßig aus (Ende des Tages) und importieren Sie dann alle Schemaänderungen in das DB-Projekt.
  2. Bearbeiten Sie die Dateien in Ihrem DB-Projekt über VS und erstellen Sie dann ein Bereitstellungspaket, das entweder direkt in Ihrer DB ausgeführt wird oder ein Skript generiert, das Sie ausführen können, um Ihr Schema in der DB zu aktualisieren.
Ryathal
quelle
Die zweite Lösung ist meiner Meinung nach die beste Lösung. Sie können einen Bereitstellungsprozess einrichten, der nur einen Klick erfordert. Wenn Sie Ihre Dateien in Visual Studio bearbeiten, werden sie automatisch aus der Quellcodeverwaltung entfernt. Ich habe mit der ersten Methode gearbeitet, aber es ist schwierig, immer Schema-Vergleiche durchzuführen. Zumindest für mich stürzt das Schema-Vergleichstool in Visual Studio häufig ab.
Kris Harper