341 Stimmen

Wie führt man Versionskontrolle für eine SQL Server-Datenbank durch?

Ich möchte meine Datenbanken unter Versionskontrolle halten.

Ich möchte immer zumindest einige Daten darin haben (wie alumb erwähnt: Benutzertypen und Administratoren). Oft möchte ich auch eine große Sammlung generierter Testdaten für Leistungsmessungen haben.

Wie kann ich Versionskontrolle auf meine Datenbank anwenden?

12voto

Lance Fisher Punkte 25464

Sie könnten auch eine Migrationslösung in Betracht ziehen. Diese erlauben es Ihnen, Ihr Datenbankschema in C#-Code zu spezifizieren und die Datenbankversion mit MSBuild hoch- und runterzufahren.

Ich benutze derzeit DbUp und es funktioniert gut.

10voto

Matt Punkte 5865

Sie haben keine spezifischen Angaben zu Ihrer Zielumgebung oder Einschränkungen gemacht, daher ist dies möglicherweise nicht vollständig anwendbar... aber wenn Sie eine Möglichkeit suchen, eine sich entwickelnde DB-Schema effektiv zu verfolgen und nicht abgeneigt sind, Ruby zu verwenden, sind ARs Migrations genau das Richtige für Sie.

Migrations definieren programmatisch Datenbanktransformationen mithilfe einer Ruby-DSL; jede Transformation kann angewendet oder (normalerweise) rückgängig gemacht werden, sodass Sie zu einem bestimmten Zeitpunkt zu einer anderen Version Ihres DB-Schemas wechseln können. Die Datei, die diese Transformationen definiert, kann wie jeder andere Quellcode in die Versionskontrolle eingecheckt werden.

Da Migrations ein Teil von ActiveRecord sind, werden sie in der Regel in Full-Stack Rails-Anwendungen verwendet. Sie können jedoch ActiveRecord auch unabhängig von Rails mit minimalem Aufwand verwenden. Weitere Informationen zur Verwendung von AR's Migrations außerhalb von Rails finden Sie hier.

10voto

Jede Datenbank sollte unter Versionskontrolle stehen. Was fehlt, ist ein Tool, um automatisch alle Datenbankobjekte - und "Konfigurationsdaten" - in eine Datei zu skripten, die dann einem beliebigen Versionskontrollsystem hinzugefügt werden kann. Wenn Sie SQL Server verwenden, dann ist meine Lösung hier: http://dbsourcetools.codeplex.com/. Viel Spaß. - Nathan.

9voto

dariol Punkte 1929

Es ist einfach.

  1. Wenn das Basissprojekt bereit ist, müssen Sie das vollständige Datenbankskript erstellen. Dieses Skript wird in SVN übernommen. Es ist die erste Version.

  2. Danach erstellen alle Entwickler Änderungsskripte (ALTER..., neue Tabellen, Prozeduren usw.).

  3. Wenn Sie die aktuelle Version benötigen, sollten Sie alle neuen Änderungsskripte ausführen.

  4. Wenn die App in die Produktion veröffentlicht wird, gehen Sie zurück zu 1 (aber dann wird es natürlich eine aufeinanderfolgende Version sein).

Nant wird Ihnen helfen, diese Änderungsskripte auszuführen. :)

Und denken Sie daran. Alles funktioniert gut, wenn Disziplin vorhanden ist. Jedes Mal, wenn eine Datenbankänderung übernommen wird, werden auch die entsprechenden Funktionen im Code übernommen.

2 Stimmen

Nach einigen Jahren sage ich : Verwenden Sie FluentMigrator (oder ein ähnliches Tool für Ihre Plattform).

8voto

Jon Galloway Punkte 51200

Wenn Sie eine kleine Datenbank haben und das gesamte Ding versionieren möchten, könnte dieses Batch-Skript helfen. Es entkoppelt, komprimiert und überprüft eine MSSQL-Datenbank-MDF-Datei in Subversion.

Wenn Sie hauptsächlich Ihr Schema versionieren möchten und nur eine geringe Menge an Referenzdaten haben, können Sie möglicherweise SubSonic Migrations verwenden, um das zu handhaben. Der Vorteil dabei ist, dass Sie leicht auf eine bestimmte Version migrieren können.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X