Visual Studio-Datenbankprojekt-Rollback-Skript

9

Ich verwende das Database-Projekt in Visual Studio 2010, um ein Skript zum Bereitstellen meiner Datenbank (und ihrer Änderungen) zu erstellen. Das funktioniert großartig.

Gibt es eine Möglichkeit, Visual Studio-Datenbankprojekt ein Rollback-Skript sowie das Bereitstellungsskript generieren zu lassen.

Ich bin nicht auf der Suche nach Rollback der Transaktion während der Bereitstellung; Aber sagen wir, dass ich es deploy und meine gespeicherte Prozedur hat ein übersehenes Leistungsproblem, das eine Woche später kommt, das einen Rollback zu der vorherigen Version der Datenbank erfordert.

Gibt es eine Möglichkeit, das Rollback-Skript zur Build / Deploy-Zeit zu generieren, die alle Änderungen rückgängig macht, die das Deployment-Skript vorgenommen hat.

BEARBEITEN: Wenn wir ignorieren, dass ich ein Datenbankprojekt verwende: Was ist ein guter Weg, um einen Upgrade- und Downgrade-Pfad für eine generierte Datenbank zu erstellen? Diese Generation muss Teil eines automatisierten Build-Prozesses sein.

    
Nija 28.02.2011, 22:31
quelle

3 Antworten

5

So erstellen Sie ein Rollback-Skript Während Sie einen Schemavergleich mit VS2010 durchführen, ist es so einfach, die in Quelle und Ziel angegebenen Datenbanknamen zu vertauschen.

Auf diese Weise würde VS2010 ein Rollback-Skript erstellen, das Drop-Anweisungen für Ihren gespeicherten Prozess enthält.

    
Ankur Mongia 15.06.2011 14:32
quelle
0

Ich habe so etwas noch nicht gesehen.

Ich denke, Sie müssen diesen Ansatz noch einmal überdenken, da Sie das gespeicherte Proc immer noch in Ihrem Datenbankprojekt reparieren müssen. Andernfalls würden Sie die "schlechte" Version bei der nächsten Bereitstellung einfach erneut bereitstellen. (Ich bin mir sicher, dass Sie das bereits wissen, aber es hilft nicht, das Offensichtliche manchmal hervorzuheben!)

Wenn Sie in der Zwischenzeit eine alte Version des Sprocs auf dem Server wiederherstellen müssen, hätte ich gedacht, dass es am einfachsten wäre, die vorherige Version aus der Quellcodeverwaltung zu holen und diese manuell bereitzustellen.

>     
Mike Goatly 04.04.2011 15:30
quelle
0

Sie können vor der Veröffentlichung eine Sicherungskopie der Datenbank erstellen und dann aus der Sicherungskopie wiederherstellen, falls etwas schief geht. Offensichtlich würden Sie auch Datenänderungen verlieren (entweder als Teil der Veröffentlichung oder nachträglich), seit die Sicherung durchgeführt wurde.

Eine andere Idee, die ich hatte, war, vor der Veröffentlichung einen Schnappschuss zu erstellen. Die Operation zum Erstellen eines Snapshots ist sehr leicht. Ich bin mir nicht sicher, ob Sie den Snapshot für eine Woche behalten möchten, aber wenn die Veröffentlichung fehlgeschlagen ist, würde es meiner Meinung nach schneller sein, aus einem Snapshot als aus einem vollständigen Backup wiederherzustellen. Ich würde mich freuen, irgendwelche Kommentare zu hören, die Leute über diese Idee haben.

    
Tom Hunter 21.12.2011 16:01
quelle