2014-05-12 3 views
0

Nous utilisons FluentMigrator dans un projet. Disons que j'ai du code comme celui-ci ci-dessous.Nouvelle migration sans effacer les anciennes données

Ainsi, chaque fois que nous exécutons une nouvelle migration, toutes les données précédentes sont supprimées. Y a-t-il moyen de l'éviter et de conserver les données dans des endroits qui ne changent pas?

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"); 
     } 
    } 

Répondre

1

Dans le cadre de la méthode que vous Down vous pouvez créer des tables de sauvegarde qui sont identiques à la table que vous supprimez mais sont post fixe avec un horodatage. Par exemple:

Project_201407091059 
Data_201407091059 

Vous pouvez ensuite copier toutes les données des tables en cours de suppression vers ces tables.

Questions connexes