【发布时间】:2017-08-18 02:42:07
【问题描述】:
我正在尝试对现有数据库使用迁移并创建一个新数据库(如果不存在)。
EF Core 文档说:
如果您在数据库已经存在时创建了初始迁移,则会生成数据库创建代码,但不必运行,因为数据库已经与数据模型匹配。当您将应用程序部署到数据库尚不存在的另一个环境时,此代码将运行以创建您的数据库
我进行了初始迁移,它创建了一个 up 和 down 方法来创建我的表。当我将它运行到一个新数据库(连接字符串中的新数据库名称)时,它会按预期创建数据库和表。
但如果我将它运行到现有数据库(不是由迁移创建的),它会在尝试创建已存在的表的第一个 up 方法时失败,并且迁移停止运行。
Docs 说“它不必运行”,但迁移做的第一件事就是尝试创建一个现有的表。
如何防止迁移以尝试创建现有表?迁移中内置了“如果不存在则创建”之类的东西?文件对吗?它应该按预期/文档中描述的方式工作?
如果我做错了,使用迁移以在现有数据库和新数据库上运行的策略是什么?
Dotnet 核心版本:1.1。 EFCore 版本:1.1.2。
提前致谢。
【问题讨论】:
标签: .net-core entity-framework-core entity-framework-migrations