2011-07-07 4 views
1

C#、Entity Framework、SQL Serverを使用してMVC 3 Webサイトを開発する準備が整いました。将来的にMVC3サイトのSQL Serverデータベースを進化させ、データが失われないようにする方法

このウェブサイトは重要な仕事のために作られており、紛失したデータは絶対に許可されていません。私の知る限りでは、進化したデータベースの経験はありませんでしたが、このプロジェクトはインクリメンタルな開発方法論を使用しながら進化できるはずです。私はそれに従うべきガイドラインがあることを知っていて、どのように私はそれを単一のエラーなしで進化させるのですか?データベースの初期設計時など。ちょうど0のデータ損失が最優先の要件です。

は、私はこの2質問に対して答える必要といくつかの経験が

  • どのようにリモートアップデートするデータベースを更新する方法
    1. が同じテーブル内の他のデータに影響を与えることなく、テーブル、列を含め、この問題で私を導くことを願って

    1.質問には、データベースは私のWebサーバーにありますが、質問2はデータベースがユーザーエンドにとどまっています。

  • +0

    私は、アプリケーションの進化とアプリケーション要件の変更、データベースの更新が必要ですが、データ損失のリスクを回避し、効率的な方法で進化させながら、将来的にはDB構造を更新することを意味します... – 1myb

    答えて

    1

    答えは:あなたの要件が満たされるようにアップグレードプロセスを設計することはあなたの義務です。あなたのためにこれを行う自動魔法はありません。

    通常、データベース構造を変更するアップグレードSQLスクリプトを作成し、必要に応じてデータを一時テーブルに移動し、メインテーブルの構造を変更してデータが失われないようにします。一部の特別なテーブルでデータベースのバージョンを管理し、更新プログラムを実行する前に確認して、更新スクリプトが予想される古いバージョンで実行されるようにすることもできます。

    RedGate SQL CompareやVisual Studio Databaseツール(PremiumとUltimateバージョンのみ)のようなツールがあり、古いデータベース、新しいデータベース、差分スクリプトを作成して古いデータベーススキーマを新しいもの。これはほとんどのシナリオで機能しますが、テスト環境で常に結果を非常に慎重にテストする必要があります。可能であれば、運用データベースのバックアップをテストすることをお勧めします。

    何か問題が生じた場合、データの消失を防ぐにはどうすればよいですか?変更を加えて何か問題が生じた場合に古いデータベースを復元する前に、非常に単純な方法が1つだけあります。バックアップデータベース SQLを使用してバックアップすることもできます。バックアップが成功しなければ、本番データベースには絶対に触れないでください。

    クライアントサイドデータベースをアップグレードするにはどうすればよいですか?同じプロセスを使用しますが、WiXを使用して作成されたインストールパッケージ(.msi)ですべてをラップします。

    関連する問題