Frage

Ich suche nach einigen „Best Practices“ für die Automatisierung der Bereitstellung gespeicherter Prozeduren/Ansichten/Funktionen/Tabellenänderungen aus der Quellcodeverwaltung.Ich verwende StarTeam und ANT, damit die Beschriftung erledigt ist.Was ich suche, ist, wie einige von Ihnen an die Automatisierung des Pulls dieser Objekte aus der Quelle herangegangen sind – nicht unbedingt StarTeam.

Am Ende möchte ich ein Skript haben, das dann ausgeführt, eingecheckt und beschriftet werden kann.

Ich bitte niemanden, das zu schreiben – nur einige Ideen oder Ansätze, die in der Vergangenheit funktioniert haben (oder nicht).

Ich versuche, ein Chaos zu beseitigen und möchte sicherstellen, dass ich es so „richtig“ wie möglich hinbekomme.

Wir speichern die Tabellen/Ansichten/Funktionen usw.in einzelnen Dateien in StarTeam und unsere Datenbank ist SQL 2K5.

War es hilfreich?

Lösung

Wir verwenden SQL Compare von redgate (http://www.red-gate.com/).

Wir haben eine Produktionsdatenbank, eine Entwicklungsdatenbank und jeder Entwickler hat seine eigene Datenbank.

Die Entwicklungsdatenbank wird mit den Änderungen synchronisiert, die ein Entwickler an seiner Datenbank vorgenommen hat, wenn er seine Änderungen eincheckt.

Der Entwickler checkt außerdem ein Synchronisationsskript und einen von SQL Compare generierten Vergleichsbericht ein.

Wenn wir unsere Anwendung bereitstellen, synchronisieren wir einfach die Entwicklungsdatenbank mit der Produktionsdatenbank mithilfe von SQL Compare.

Das funktioniert für uns, da unsere Anwendung nur für den internen Gebrauch bestimmt ist.Wenn dies nicht Ihr Szenario ist, würde ich mir SQL Packager (ebenfalls von Redgate) ansehen.

Andere Tipps

Checken Sie ein Migrationen (darauf hingewiesen von Andrew Peters In ein weiterer Beitrag)

Ich bevorzuge es, Ansichten, Prozeduren und Trigger (Objekte, die nach Belieben neu erstellt werden können) von Tabellen zu trennen.Für Ansichten, Prozeduren und Trigger schreiben Sie einfach einen Job, der sie überprüft und die neuesten Versionen neu erstellt.

Für Tabellen bevorzuge ich eine Datenbankversionstabelle mit einer Zeile.Verwenden Sie diese Tabelle, um festzustellen, welche neuen Updates nicht angewendet wurden.Anschließend wird jedes Update angewendet und die Versionsnummer aktualisiert.Wenn ein Update fehlschlägt, müssen Sie nur dieses Update überprüfen und können es erneut ausführen, in der Gewissheit, dass die früheren Updates nicht noch einmal durchgeführt werden.

Wie Carl betonte, können Sie ein Diff-Dienstprogramm verwenden, um Ihre Update-Skripte zu erstellen.RedGate ist ein gutes Produkt, aber SQL Server 2k5 wird mitgeliefert TableDiff was auch den Job machen sollte.

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