2010-11-18 9 views
2

私はsqlite DBを使用する1つのWindowsアプリケーションを持っています。セットアップとデプロイメントプロジェクトを使用して、このアプリケーションのセットアップを作成しました。私は、アプリケーションの変更を加えて毎月ビルドを行う必要があり、ユーザーはそれを更新する必要があります。Windowsアプリケーションのセットアップ - 更新とデータベーススキーマの変更

私のアプリケーションは、初めて実行するときにsqlite DBファイルを作成します。 DBファイルが存在する場合は作成されません。今、私がアプリケーションのアップデートをしたら、DBスキーマにいくつかの変更を加える必要があります。この場合、ユーザーはsqlite DBにもいくつかのデータを持っている可能性があります。私はデータに触れるのではなく、DBスキーマを更新すべきです。また、アプリケーションに新しい機能を追加する予定であるため、これは数か月後に1回発生します。

この種のアプリケーションの更新をどのように処理するのですか。私はアプリケーションに新しい機能を追加するたびに新しい設定を行い、既存のバージョンをアンインストールして新しいバージョンをインストールします。しかし、私はデータベースの部分について混乱しています。この増分更新をDBスキーマでどのように処理する必要がありますか?

提案がありますか?

答えて

0

上記の回答は、私の問題をある程度まで解決しますが、私は全く別のアプローチを考え出しています。

DrDroが提供するデータベース更新アプローチを使用しました。アプリケーションの更新については、私はより良いアプローチがあると思います。私は、ソース(私の場合はサーバー)で利用可能な新しいアップデートがあるときはいつでも、アプリケーション自体からアプリケーションの自動アップデートについて話す記事を見つけました。

ここにはarticleがあります。このアプローチについては非常にはっきりと説明しています。

1

Autopatchnet - このプロジェクトは、元のTactiKnowledge dotnetプロジェクトに基づくAutoPatchの.Netポートです。

ecm7migrator - このプロジェクトは、Migrator.NETからフォークしています。

Migrator.NET - .NET用のデータベース移行。 Rails ActiveRecord Migrationsの考え方に基づいています。

+0

Yup;ほとんどの答えは、データベースのバージョン管理/移行です(これは、単にデプロイメントではなく、コードのために実行する必要があります)。 – strager

1

データベースにDBバージョン番号があり、バージョン番号に応じてアプリケーションをデータベースに更新する必要があります。したがって、SQLの更新スクリプトはアプリケーションに含まれ、アプリケーションによって呼び出され、起動時に処理されます。

セットアップによってコードとファイルが更新され、アプリケーションによってデータベースが更新されます。

+0

データベースは、あなたが言ったように実装されています。アプリケーションの更新は別の方法で行われます。私は自分の質問に答えました。 – JPReddy

関連する問題