この問題に対して、移行ツール Migratordotnet を使用することにしました。 .
移行 (どのツールでも) では、変更を実行して元に戻すために使用される単純なクラスがあります。以下に例を示します:
[Migration(62)]
public class _62_add_date_created_column : Migration
{
public void Up()
{
//add it nullable
Database.AddColumn("Customers", new Column("DateCreated", DateTime) );
//seed it with data
Database.Execute("update Customers set DateCreated = getdate()");
//add not-null constraint
Database.AddNotNullConstraint("Customers", "DateCreated");
}
public void Down()
{
Database.RemoveColumn("Customers", "DateCreated");
}
}
この例は、既存のデータを持つテーブルに新しい非 null 列を追加するなど、揮発性の更新を処理する方法を示しています。これは簡単に自動化でき、バージョン間を簡単に行き来できます。
これは私たちのビルドにとって非常に価値のある追加機能であり、プロセスが大幅に合理化されました .
.NET のさまざまな移行フレームワークの比較をここに投稿しました:http ://benscheirman.com/2008/06/net-database-migration-tool-roundup