FluentMigrator 备份 Table

FluentMigration Backup Table

我有一个 Table 需要删除几列。

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

我正在使用 FluentMigrator .NET(ActiveRecord Ruby On Rails 就像迁移一样)。对于 UP() 迁移,这是删除列的简单情况。

如何创建迁移的下部分?

我的想法是在 UP() 过程中创建 table 的克隆,然后在 Down() 过程中将架构和数据复制回原始文件。

实现此目的最简单的方法是什么?

编辑: TableA.ID 被其他 table 引用。因此,如果我们要从 TableA 中删除所有行并从 TableA_Backup 中重新插入,则必须在关闭所有外键约束并据我了解打开 identity_insert 的情况下完成。

最好有代码示例。

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

  1. 使用 _Backup 前缀重命名原始 table。
  2. 已将 table 中的项目复制到具有原始名称的新 table 架构中。使用身份插入。
  3. 删除了引用旧 table 的外键。
  4. 添加外键以引用新的 table。

这些步骤中的每一个都是可逆的,您可以创建向下迁移。