इसी समस्या के लिए मैंने एक माइग्रेशन टूल का उपयोग करना चुना: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");
}
}
यह उदाहरण दिखाता है कि आप अस्थिर अपडेट को कैसे संभाल सकते हैं, जैसे कि मौजूदा डेटा वाली तालिका में एक नया गैर-शून्य कॉलम जोड़ना। इसे आसानी से स्वचालित किया जा सकता है, और आप संस्करणों के बीच आसानी से ऊपर और नीचे जा सकते हैं।
यह हमारे निर्माण के लिए वास्तव में एक मूल्यवान अतिरिक्त रहा है, और प्रक्रिया को सुव्यवस्थित किया है बेहद ।
मैंने यहां .NET में विभिन्न माइग्रेशन फ्रेमवर्क की तुलना पोस्ट की:http ://benscheirman.com/2008/06/net-database-migration-tool-roundup