2011-02-24 4 views
2

私はASP.NETプロジェクトを持っています。当然ながら、異なるリリースおよび開発ブランチを通じて、dbスキーマが変更されます。ASP.NETのバージョンブランチ/ロールバック間のデータベース変更を扱う

スキーマの変更をフレンドリーに処理して、開発ブランチを簡単に切り替える方法はありますか?

私はSQL Server 2005を使用しますが、一般的な手法がおそらく動作します。

+0

@私は混乱しています。時にはデータベーススキーマを変更し、そのデータベースにアクセスするコードの更新を処理する最善の方法を知らないことを意味しますか? –

+0

データベースにアクセスするコードではありません。スキーマ自体が変更されます。 –

+0

レールの移行のように誰もこの権利を得ていないのはなぜですか?私は亜音速3がそれを刺すことを知っていますが(自動移行を参照してください)、それは完璧ではありません...なぜ私たちはこれを持っていません.net/c#etc? – jonezy

答えて

2

開発プロジェクトの複数のブランチでスキーマの変更を追跡する良い方法は、database refactoringプロセスに従うことです。この種のプロセスには、デルタおよび移行スクリプトを使用してスキーマの変更を各環境に適用するという利点があります(または、あなたの場合はブランチ)。

main 
    src <-- ASP.NET project source 
    db <-- Database create scripts 
    delta <-- Database change scripts (SQL delta files) 

branch 
    src 
    db <-- usually has the same contents as the copy in main branch 
    delta <-- only the changes necessary for this branch 

あなたが変更を適用するために使用されるSQLデルタスクリプトを作成し、特定のブランチのデータベーススキーマを変更する必要があるたびに:セットアップはこのような何かを見ることができます。簡単にするために、各スクリプトファイルの名前を付けて、日時を作成して順番に保存することをお勧めします。例:

201102231435_addcolumn.sql 
201102231447_addconstraint.sql 
201103010845_anotherchange.sql 

デルタファイルを、スキーマの変更が必要なブランチのソース管理に追加します。対応するデータベースを変更するために必要なものを正確に格納している各ブランチを作成する必要があります。ブランチングスキームやリリースプロセス中にデータベースを保存するかどうか(再作成とは対照的に)などの状況によっては、状況によっては細部の調整が必要な場合もあります。

最後に、これらの概念を簡単にするために、プロセスの管理に役立つツールをお勧めします。私の提案はDBDeploy/DBDeploy.NETです。私はすべてのプロジェクトで何年もそれを喜んで使ってきました。

0

スキーマの変更はソースコントロール内に、そのバージョンに配備されている残りのコードと同じ場所に配置されます。

関連する問題