Source-Control-tools für Visual Studio 2010 und SQL Server 2008-Skripte und Datenbank-updates?

Sind wir derzeit mit Visual Studio 2010 und SQL Server 2008 R2 - Entwicklung intranet ASP.NET Anwendungen, die verwenden (mehrere) SQL-Server-Datenbanken.

Wir haben die Speicherung von Skripten (für die Datenbanken) für SQL-Server-source-control, getrennt von tools wie SQL Server Management Studio (SSMS) oder Visual Studio. Das heißt, wir haben eine Sammlung von text-Dateien mit den Skripts für Tabellen, gespeicherte Prozeduren etc.; und wir prüfen diese in-und out-of-source-control direkt vor Sie zu aktualisieren (wie im Management Studio) und überprüfen Sie wieder an (und dann über die Scripte, die in SSMS um die Datenbank zu aktualisieren).

Würden wir jetzt gerne bewegen, um einen stärker integrierten Ansatz.

Habe ich gelesen, einige der Fragen/Antworten bei StackOverflow auf die source-control im Zusammenhang mit SQL Server (einige von Ihnen zurückgehend bis fast Anfang der StackOverflow), aber keine gefunden haben hervorragende Lösungen. Auch einige der Einträge, die ein Datum vor Visual Studio 2010, SQL Server 2008 oder einige der tools sind nun verfügbar.

Ich habe auch andere Beiträge gelesen zu diesem Thema, wie Troy Hunt ' s Artikel (ein Beispiel ist: http://www.troyhunt.com/2011/02/automated-database-releases-with.html) und K. Scott Allen Artikeln (zum Beispiel: http://odetocode.com/blogs/scott/archive/2008/02/02/versioning-databases-views-stored-procedures-and-the-like.aspx).

SQL Server Management Studio hat das Konzept einer "Datenbank-Projekt", aber dies ist offenbar eine als veraltet markierte Funktion und wird nicht empfohlen für neue Entwicklung.

Ansätze, die wir erwägen im moment sind:

(1) Erstellen Sie eine SQL Server 2008-Datenbank-Projekt in Visual Studio 2010 und verbinden Sie diesen mit source control (TFS oder VSS, zum Beispiel). [Dieser option können erfordert Premium oder Ultimate oder Team Database Edition von Visual Studio.]

Dieser Ansatz betrachtet das Skript zu "master" und die Datenbank wird angelegt/aktualisiert, dass das synchronisieren mit dem Skript version.

Wünschenswerte Merkmale dieses Ansatzes sind: die Globale Suche, suchen/ersetzen, refactoring, Warnungen über fehlende Indizes oder ungültig referenzierte Elemente, etc.

Die Nachteile sind: kein GUI-designer für Tabellen und andere Elemente können leicht Daten verloren gehen, mit einigen änderungen zu Spalten (da die "alter" - Skript löscht die Spalte und neu erstellt), fehlende "Dokument formatieren" - Befehl (verfügbar in Visual Studio für web-Projekte, aber nicht für die Datenbank-Projekte).

(2) Red gate SQL Source Control - (und SQL-Compare), die in SQL Server Management Studio.

Dieser Ansatz im wesentlichen der Auffassung der Datenbank "master", und die Skripte sind aktualisiert, basierend auf änderungen am Datenbank-design. In vielerlei Hinsicht ist dies einer genaueren übereinstimmung der Weise, dass sich viele kleinere Entwicklungsteams arbeiten.

Der große Vorteil dieses Ansatzes ist, dass Sie zur Verfügung haben alle SSMS tools und Designer.

Die Nachteile sind, dass es weniger design-Integrität prüfen, ohne suchen/ersetzen oder die Globale Suche (ohne das installieren von anderen add-ons), und die generierten Skripts mit SQL Source Control syntaktisch unterscheidet sich von den Skripts erzeugten nativ vom SSMS oder Visual Studio (das Ergebnis ist das gleiche).

=====

Haben Sie Vorschläge für alternative Ansätze gibt es bestimmte tools oder Dienstprogramme, die Sie verwenden/bevorzugen Sie für die Integration von Quellcodeverwaltung für Datenbanken von SQL Server in SQL Server Management Studio oder Visual Studio 2010, und wie über die Ansätze für die Aktualisierung/Synchronisierung sowohl die Entwicklung und Produktion von Datenbanken mit änderungen?

Habe ich auch angeschaut, ein paar andere software-utilities/tools für diesen Zweck (einige von diesen wurden schon in anderen StackOverflow Themen):

SQL Examiner (eine Möglichkeit, obwohl es ein komplett separates tool; nicht integriert in SSMS oder Visual Studio)

LiquiBase (Apache/Java, kein .Noch NET)

NeXtep (keine SQL-Server-Unterstützung noch)

DBSourceTools (nicht integriert genug noch)

InformationsquelleAutor PhilipD | 2011-04-13
Schreibe einen Kommentar