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 的情况下完成。
最好有代码示例。
对于任何感兴趣的人来说,我是如何让它发挥作用的。
- 使用 _Backup 前缀重命名原始 table。
- 已将 table 中的项目复制到具有原始名称的新 table 架构中。使用身份插入。
- 删除了引用旧 table 的外键。
- 添加外键以引用新的 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 的情况下完成。
最好有代码示例。
对于任何感兴趣的人来说,我是如何让它发挥作用的。
- 使用 _Backup 前缀重命名原始 table。
- 已将 table 中的项目复制到具有原始名称的新 table 架构中。使用身份插入。
- 删除了引用旧 table 的外键。
- 添加外键以引用新的 table。
这些步骤中的每一个都是可逆的,您可以创建向下迁移。