Voor dit probleem heb ik ervoor gekozen om een migratietool te gebruiken:Migratordotnet .
Met migraties (in elke tool) heb je een eenvoudige klasse die wordt gebruikt om je wijzigingen uit te voeren en ongedaan te maken. Hier is een voorbeeld:
[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");
}
}
Dit voorbeeld laat zien hoe u vluchtige updates kunt verwerken, zoals het toevoegen van een nieuwe niet-null-kolom aan een tabel met bestaande gegevens. Dit kan eenvoudig worden geautomatiseerd en u kunt gemakkelijk tussen versies op en neer gaan.
Dit is echt een waardevolle toevoeging aan onze build geweest en heeft het proces enorm gestroomlijnd. .
Ik heb hier een vergelijking van de verschillende migratieframeworks in .NET geplaatst:http ://benscheirman.com/2008/06/net-database-migration-tool-roundup