使用EF6,update-database
在运行命令时正常工作,并让它直接在数据库上执行迁移。当您可以直接访问数据库时,这适用于开发时间。
我想要的是生成脚本并在部署期间运行脚本。当我使用update-database -script
时,在一些操作使得脚本在SQL管理工作室中执行不正确后,生成的脚本没有正确的GO语句。我所遇到的一个确切问题是CREATE TABLE [dbo].[__MigrationHistory]
无法执行。
如果我手动插入GO语句并执行脚本,它可以正常工作。我发现如果你有一个"创建程序"迁移中的陈述。
为了进行测试,我创建了一个自定义SQL生成器类,并在所有重要的迁移操作之前使其注入GO
语句。然后使用update-database -script
参数生成的sql脚本正常工作。但是开发时间"更新 - 数据库"停止工作并抱怨could not find stored procedure 'GO'
有没有人知道如何使用-script
参数使其工作?