Frage

Es ist schon einige Wochen Ich versuche, eine ausführlichere Erklärung mit Beispielen zu finden, wie meine Datenbankänderung auf Software-Patches verwalten.

Situation:

  • I bereitstellen WPF-Anwendung Release Benutzer. App verwendet MSSQL Datendatei für Speichern von App-Daten (Deployment mit Client Profile und SqlServer Compact 3.5 Voraussetzungen)
  • In weiteren Entwicklung Datenbank Schemaänderungen füge ich etwas mehr Auch Daten
  • Ich versuche, ein laufen Patch / Minor / Major Upgrade mit Visual Studio 2008 Veröffentlichung und msi

Ich mag Benutzer App und Datenbank-Datei aktualisieren, aber die Daten nicht berühren, die in dieser Datenbank gespeichert wurde. Scheint einfach, aber ich kann nicht auf Web zu finden, wie das mit Visual Studio Publishing zu tun bekommen

Was ich bisher gesammelt habe, sind zwei Möglichkeiten:

  • Erstellen Sie SQL-Update-Skript für jede Release und Update-Datenbank anprobieren 1. Programmstart nach dem Patchen.
  • Erstellen Sie Datenbank-Setup-Projekt und versuchen Skript von dort (keine Ahnung, wie dies zu tun).

Ich würde gerne hören, was einige von Ihnen verwenden oder würde einem solchen Fall verwenden. Einiger Link zu Beispielen / ausführliche Erklärung, wie todo wäre genial. Ich bin nicht sehr gut in diesem deployment / Datenbank stuff ... noch ...:)

Vielen Dank im Voraus.

War es hilfreich?

Lösung

Dieser Artikel auf " Rails Stil Datenbank Migrationen in .Net " könnte nützlich sein. Seit dem Aufstieg der Schienen gibt es eine Menge Arbeit auf Best Practices für Datenbankmigrationen wurde, die in anderen Sprachen und Plattformen genutzt werden kann.

Andere Tipps

In meinem aktuellen Projekt verwenden wir eine Technik Kontinuierliche Datenbankintegration bezeichnet.

Wir sammeln alle SQL Change Scripts (das Erstellen werden kann / Tabellen zu ändern, gespeicherte Prozeduren, sondern auch Daten der Migration, etc ...), in c # Projekt und stellen Sie sie in der gleichen Zeit wie der Rest der Software.

Mit dieser Technik können wir sicherstellen, dass alle Entwickler Datenbanken ist up-to-date als auch, wie es in dem Visual Studio-Build-System integriert ist.

Wir führen dieses MSBuild-Skript für lokale baut und für die Bereitstellung. Es prüft eine Versionsnummer in der Datebase und führt alle Skripte mit einer höheren Zahl.

Ich bin nicht so gern MSBuild, aber es wird die Arbeit erledigt.

Martin Fowler hat einen Artikel über evolutionären Datenbank-Design , die auf diesem Hintergrund hat.

Wenn Sie SQL Server Management Studio verwenden um Änderungen vorzunehmen, können Sie das „Gene Change Script“ verwenden zu lassen, es Skript die Änderungen für Sie.

Wenn Sie Installer Klasse Ihrem DLL hinzuzufügen oder EXE es Install-Methode während der Installation aufgerufen wird (sieh Dir unsere MSDN für Details, VS eine Mini-Setup proj für Sie machen können und dann können Sie nur das Skelett und Attribute kopieren). Dann können Sie SQL-Befehle für CE und Sicherung bestehender CE-Dateien ausführen und sogar ein Rollback tun, wenn etwas schief geht (Installer-Klasse verfügt über Methoden voll grenzüberschreitende Schritte auf der Ebene der gesamten Einrichtung folgen - das Stück des Geistes Sache: -)

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