Frage

In unserem Projekt haben wir mehrere Produktionsdatenbanken und viele Devs. Jede Produktionsdatenbank stellt einige „Teilprojekt / Lokalisierung Version“. Wir verwenden SQL Server 2008.

Also, ich brauche Datenbank Versionierung Strategie mit MS Visual Studio-Datenbank-Projekt zu entwickeln. Ich habe eine Menge von Artikeln über Datenbank lesen Versionierung und Datenbankprojekte, aber ich habe noch viele Fragen haben:

  1. Wie sollten Entwickler implementieren ihre Änderungen an DB-Projekt? (Best Practice)

  2. Wie die 100% bearbeitbar zu erzeugen „Neueste Version“ deploy Skript ohne menschlichen Eingriff (Skipping einige Objekte, Umschreiben einige Änderungen, etc)?

  3. Wie Daten verwalten Änderungen mit MS Visual Studio-Datenbank-Projekt? ich Informationen über Pre- / Post-deploy-Skripte, aber ich denke, es kann nicht dieses Problem zu beheben Problem. (Beispiel: Ich muss remap einige Tabelle in eine andere).

Die "ideale Lösung" wäre:

  1. Entwickler erstellt und pflegt Datenbank-Projekt für Datenbank [ProductionDB].

  2. Mit dem neuen Release I deploy Datenbank-Projekt auf die [ProductionDB] mit allen notwendigen Änderungen.

  3. Entwickler ändert Datenbank-Projekt und schreibt einige Datenmanipulation Skripte für konkrete Veränderungen.

  4. Mit dem neuen Release I deploy Datenbank-Projekt auf die [ProductionDB] mit allen notwendigen Änderungen vor.

So, Die letzte Frage: Ist es zu verwenden Datenbank-Projekt posible für die oben beschriebenen Zwecke oder jemand verwendet ähnliches Szenario / Lösung

?

PS: Ich habe schon gelesen folgenden Diskussionen:

  1. Datenbankänderungen Versionierung [geschlossen]
  2. Wie kann ich meine Version MS SQL-Datenbank in SVN?
  3. der Suche nach Lösung für Datenbank-Versionierung
  4. Gibt es ein Versionskontrollsystem für die Datenbankstruktur Änderungen?
War es hilfreich?

Lösung

Datenbank-Projekt ist für die meisten der Gründe, warum gerade verwendet, dass Sie hier erwähnt haben -

  1. Entwickler nur die Datenbankskriptdateien Kasse, die Änderungen vornehmen, und überprüfen Sie sie auf der Rückseite. Wohlgemerkt werden sie SQL-Dateien werden zu ändern und nicht direkt Objekte die in jedem Entwickler-Datenbank. Also, wenn Sie zwei Spalten eine Datenbanktabelle hinzufügen müssen, werden ändern Sie die Tabelle Skript für diese Tabelle zu erstellen, und nicht einen alten Skript für diese Tabelle schreiben.

  2. Wenn Sie das Ziel alte Version DB-Schema haben - Sie können nur auf die Datenbank mit den neuesten Dateien dieses Projekt bereitstellen und einem Bereitstellungsskript wird (mit den notwendigen alten Aussagen) erstellt bekommen. Es gibt ein Projekt Einstellung, die Sie entscheiden, ob der Deployment-Skript ermöglicht es auch gegen die db ausgeführt werden soll, wenn Sie ‚deploy‘.

  3. Der Deployment-Skript kann ein lieferbar sein, die separat gegen eine prod Kopie getestet und dann auf prod als Patch angewandt.

Über Datenmanipulation Skripte Ich bin nicht ganz sicher, aber für alle anderen Zwecke, die Sie erwähnt, ist ein Datenbank-Projekt perfekt.

Andere Tipps

Was Sie beschrieben haben, ist der Grund, warum das Datenbank-Projekt vorhanden ist.

Ihre Fragen beantworten:

  1. Es ist in den Entwickler auf. Sie können entweder Arbeit in Visual Studio und bearbeiten die Projektdateien direkt bearbeiten oder eine Live-Kopie der Datenbank in Mgmt Studio und Nutzung Schemas in VS verglich die Änderungen zu synchronisieren, um das Projekt zurück. Ich habe es für ein paar Monate mit und funktionieren beide gut finden, obwohl ich die Projektdateien direkt häufiger zu bearbeiten neigen.

  2. das Projekt Bereitstellen erzeugt neueste Version, wenn Sie das Kontrollkästchen zuerst das Ziel db fallen zu lassen. Sie können es ohne menschlichen Eingriff tun, indem VSDBCMD während Build

  3. Aufruf
  4. Die Pre / Post-Deployment-Skripte für nur gemeint, was Sie spielen auf. Ein Beispiel wäre, alle die Daten aus einer Tabelle in eine temporäre Tabelle auswählen und während des Pre-deploy gestutzt, das Projekt handelte, das Schema Migration lassen und es dann während der Post-deploy wieder hinzufügen. Das kann schwierig, aber das Problem ist noch nie so leicht zu lösen gewesen.

Hope, das hilft.

Die Daten Problem ist schwierig zu lösen. Hier bei Red Gate haben wir viele Anfragen für diese für unser SQL Source Control Werkzeug haben das hat Parallelen mit VS Datenbank-Projekten. Die gute Nachricht ist, dass wir aktiv unterstützen das Hinzufügen dieser für und sollte einen frühen Build vor Weihnachten auszuprobieren haben. Wenn Sie interessiert sind, melden Sie sich einfach für Early Access Benachrichtigungen an http://www.surveymk.com/s / SqlSourceControl_EapSignup . Wir freuen uns auf Ihr Feedback zu erhalten.

Sie können einen Blick auf dem Open-Source haben wollen BSN ModuleStor Toolkit , die diesen Workflow zu implementieren versucht (und es auch mehr als das eigentlich nicht tun).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top