0

ソフトウェアパッチでデータベースの変更を管理する方法の例を含む、より詳細な説明を見つけようとして数週間が経ちました。

状況:

  • wpf アプリケーション リリースをユーザーにデプロイします。アプリはアプリのデータを保存するために MSSQL データ ファイルを使用します (Client Profile と SqlServer Compact 3.5 の前提条件で展開)
  • さらなる開発データベーススキーマの変更では、余分なデータも追加します
  • Visual Studio 2008 の発行と msi を使用して、パッチ/マイナー/メジャー アップグレードを実行しようとしています。

ユーザーのアプリとデータベース ファイルを更新したいが、そのデータベースに保存されたデータには触れたくない。簡単に思えますが、Visual Studio の発行でこれを行う方法を Web で見つけることができません

これまでに収集したのは2つの選択肢です。

  • リリースごとに SQL 更新スクリプトを作成し、パッチ適用後の最初のプログラム起動時にデータベースの更新を試みます。
  • データベース設定プロジェクトを作成し、そこからスクリプトを作成してみます (これを行う方法がわかりません)。

あなたが何を使っているか、またはそのようなケースを使うと聞いてうれしいです. 例へのリンク / todo の詳細な説明。私はこの展開/データベースのことはあまり得意ではありません...まだ... :)

前もって感謝します。

4

3 に答える 3

2

私の現在のプロジェクトでは、継続的なデータベース統合と呼ばれる手法を使用しています。

すべての SQL 変更スクリプト (テーブル、ストアド プロシージャの作成/変更、データの移行など) を ac# プロジェクトに収集し、残りのソフトウェアと同時にデプロイします。

この手法を使用すると、Visual Studio ビルド システムに統合されているため、すべての開発者データベースも最新の状態に保つことができます。

この MSBuild スクリプトを実行して、ローカル ビルドとデプロイを行います。データベースのバージョン番号をチェックし、より高い番号のスクリプトを実行します。

私は MSBuild があまり好きではありませんが、仕事はやり遂げます。

Martin Fowler は進化的データベース設計に関する記事を書いており、これについての背景があります。

SQL Server Management Studio を使用して変更を行っている場合は、"変更スクリプトの生成" を使用して、変更をスクリプト化することができます。

于 2009-02-12T21:07:16.797 に答える
1

「 Rails Style Database Migrations in .Net 」に関するこの記事は役に立つかもしれません。Rails の台頭以来​​、他の言語やプラットフォームで活用できるデータベース移行のベスト プラクティスについて多くの作業が行われてきました。

于 2009-02-12T20:50:49.440 に答える
0

Installer クラスを DLL または EXE に追加すると、その Install メソッドがセットアップ中に呼び出されます (詳細については、MSDN を確認してください。VS はミニ セットアップ プロジェクトを作成し、スケルトンと属性をコピーするだけです)。次に、CE に対して SQL コマンドを実行し、既存の CE ファイルをバックアップし、何か問題が発生した場合にロールバックを実行することもできます (インストーラー クラスには、セットアップ全体のレベルで完全な国境を越えた手順に従うメソッドがあります - 心に留めておくべきこと :-)

于 2010-08-14T22:36:07.510 に答える