历史 table 不存在时的自动迁移
Automatic Migrations when history table doesn't exist
在团队环境中,我们有一个成员的数据库已经包含模型中的一些 table,但没有迁移历史 table。使用 EF 自动迁移,我们如何升级数据库以便创建历史记录 table、添加缺失的 table 和现有的 alter/upgrade?我们需要升级该成员的数据库,因为现有 table 有数据。
我认为 EF 不支持您的方案,但请继续寻找。
如果我需要这样做,我会:
- 创建一个空项目
- 将当前数据库反向工程为 EF 实体上的集合
- 让该项目创建一个新数据库,其中将包含历史记录 table
- 复制历史table到主数据库
- 运行升级数据库的主应用
当然我会先进行备份,并将临时项目及其 DbContext 命名为与主项目相同的名称,以防 EF 以某种方式将它们包含在历史记录中 table。
还有另一种方法:
- 让 EF 在空数据库上创建 tables
- 使用 SSMS import/export 向导从他们的旧数据库复制该用户的所有数据
我建议哪个:第二个,我会做哪个:第一个,因为它更冒险!
在团队环境中,我们有一个成员的数据库已经包含模型中的一些 table,但没有迁移历史 table。使用 EF 自动迁移,我们如何升级数据库以便创建历史记录 table、添加缺失的 table 和现有的 alter/upgrade?我们需要升级该成员的数据库,因为现有 table 有数据。
我认为 EF 不支持您的方案,但请继续寻找。
如果我需要这样做,我会:
- 创建一个空项目
- 将当前数据库反向工程为 EF 实体上的集合
- 让该项目创建一个新数据库,其中将包含历史记录 table
- 复制历史table到主数据库
- 运行升级数据库的主应用
当然我会先进行备份,并将临时项目及其 DbContext 命名为与主项目相同的名称,以防 EF 以某种方式将它们包含在历史记录中 table。
还有另一种方法:
- 让 EF 在空数据库上创建 tables
- 使用 SSMS import/export 向导从他们的旧数据库复制该用户的所有数据
我建议哪个:第二个,我会做哪个:第一个,因为它更冒险!