FluentMigration备份表

时间:2016-03-02 02:48:31

标签: sql .net sql-server rails-activerecord fluent-migrator

我有一个需要删除几列的表。

TableA 
{
  ID int, 
  Name NVarChar(MAX) NOT NULL, 
  ToDelete1 int NOT NULL,
  ToDelete2 int NOT NULL,
}

我正在使用FluentMigrator .NET(ActiveRecord Ruby On Rails,如Migration)。对于UP()迁移,它是一个丢弃列的简单例子。

如何创建迁移的下方部分?

我的想法是在UP()过程中创建表的克隆,然后在Down()过程中将模式和数据复制回Original。

实现这一目标的最简单方法是什么?

编辑: TableA.ID由其他表引用。因此,如果我们从TableA中删除所有行并从TableA_Backup重新插入,则必须在关闭所有外键约束并且根据我的理解启用identity_insert时完成。

代码示例会很棒。

1 个答案:

答案 0 :(得分:0)

对于任何对此感兴趣的人,我是如何设法让它发挥作用的。

  1. 使用_Backup前缀重命名原始表。
  2. 将该表中的项目复制到具有原始名称的新表格架构。使用Identity Insert。
  3. 删除了引用旧表的外键。
  4. 添加外键以引用新表。
  5. 其中每个步骤都是可逆的,您可以创建向下迁移。