2010-11-18 12 views
2

Ich habe eine Windows-Anwendung, die sqlite DB verwendet. Ich habe ein Setup für diese Anwendung mithilfe von Setup- und Bereitstellungsprojekt erstellt. Ich muss möglicherweise Builds jeden zweiten Monat mit Änderungen in der Anwendung erstellen und Benutzer muss es aktualisieren.Windows-Anwendung Setup - Update und Datenbank-Schema-Änderungen

Meine Anwendung erstellt SQLite-DB-Datei, wenn es zum ersten Mal ausgeführt wird. Wenn die DB-Datei vorhanden ist, wird sie nicht erstellt. Jetzt, wenn ich ein Update für die Anwendung habe, muss ich auch einige Änderungen im DB-Schema vornehmen. In diesem Fall könnte der Benutzer auch Daten in der sqlite DB haben. Ich sollte die Daten nicht berühren, sondern das DB-Schema aktualisieren. Auch dies wird in wenigen Monaten geschehen, da ich der Anwendung neue Funktionen hinzufügen werde.

Wie behandeln wir normalerweise diese Art von Update für die Anwendung. Ich mache jedes Mal neue Einstellungen, wenn ich der Anwendung neue Funktionen hinzufüge, die die bestehende Version deinstallieren und die neue Version installieren. Aber ich bin verwirrt über den Teil der Datenbank. Wie sollten wir mit diesem inkrementellen Update im DB-Schema umgehen?

Irgendwelche Vorschläge?

Antwort

0

Obwohl die oben genannten Antworten mein Problem bis zu einem gewissen Grad ansprechen, habe ich mir einen anderen Ansatz ausgedacht.

Ich habe Datenbank-Update-Ansatz von DrDro verwendet. Für das Update der Anwendung denke ich, dass ich einen besseren Ansatz habe. Ich fand einen Artikel, in dem es um automatische Updates der Anwendung von der Anwendung selbst geht, sobald ein neues Update an der Quelle (in meinem Fall Server) verfügbar ist.

Hier ist die article. Es erklärt sehr klar über diesen Ansatz und es war Bullen Auge für meine Anforderung.

1

Autopatchnet - Bei diesem Projekt handelt es sich um einen .Net-Port von AutoPatch, der auf dem ursprünglichen TactiKnowledge-Dotnet-Projekt basiert.

- Dieses Projekt ist Gabel von Migrator.NET.

Migrator.NET - Datenbankmigrationen für .NET. Basierend auf der Idee von Rails ActiveRecord Migrationen.

+0

Yup; so ziemlich die Antwort ist Datenbank-Versionierung/Migrationen (was Sie sowieso für Ihren Code tun sollten, nicht nur die Bereitstellung). – strager

1

Sie sollten eine DB-Versionsnummer in Ihrer Datenbank haben und Ihre App dazu bringen, die Datenbank abhängig von der Versionsnummer zu aktualisieren. Ihre SQL-Update-Skripte werden also von Ihrer Anwendung in Ihrer/enthalten und werden beim Start verarbeitet.

Das Setup aktualisiert den Code und die Dateien und Ihre Anwendung aktualisiert die Datenbank.

+0

Die Datenbank wurde so implementiert, wie Sie es gesagt haben. Das Anwendungsupdate erfolgt auf andere Weise. Ich habe meine eigene Frage beantwortet. – JPReddy