2014-05-12 73 views
0

我們在一個項目中使用FluentMigrator。假設我有如下這樣的代碼。不刪除舊數據的新遷移

所以每次當我們運行新的遷移所有以前的數據刪除。是否有辦法避免它,並保持數據安全的地方不變?

public class Migration1 : Migration 
    { 
     public override void Up() { 
      Create.Table("Project") 
       .WithColumn("id").AsInt64().PrimaryKey().Identity() 
       .WithColumn("name").AsString(30).Nullable() 
       .WithColumn("author").AsString(30).Nullable() 
       .WithColumn("date").AsDate().Nullable() 
       .WithColumn("description").AsString(1000).Nullable(); 

      Create.Table("Data") 
       .WithColumn("id").AsInt64().PrimaryKey().Identity() 
       .WithColumn("project_id").AsInt64().ForeignKey("Project", "id") 
       .WithColumn("a").AsInt32().Nullable() 
       .WithColumn("b").AsInt32().Nullable() 
       .WithColumn("c").AsInt32().Nullable() 
       .WithColumn("d").AsInt32().Nullable(); 
     } 

     public override void Down() { 
      Delete.Table("data"); 
      Delete.Table("project"); 
     } 
    } 

回答

1

作爲你的一部分Down方法,你可以創建其等同於要刪除的表,但後固定時間戳一些備份的表。例如:

Project_201407091059 
Data_201407091059 

然後,您可以複製所有從表中的數據被刪除這些表。