无法在生产服务器上执行迁移。
命令“dotnet ef database update”在我的计算机上运行,但在生产时失败
我尝试的步骤是:
1.在发布之前,在Visual Studio中填写复选框execute code first migrations
。
2. dotnet ef database update
无效。我安装了.NET SDK,但它没有所需的库。
任何建议。
答案 0 :(得分:12)
有几种选择:
dotnet ef migrations script
生成SQL脚本并在生产数据库上运行它。dbContext.Database.Migrate()
(但在运行多个应用程序/数据库客户端时要小心)此外,在Microsoft.EntityFrameworkCore.Tools
的下一个版本(1.0.0-preview3)中,我们将发送ef.exe
,您可以直接指向程序集(而不是project.json
文件)来执行迁移。
答案 1 :(得分:2)
您可以通过运行以下命令来生成迁移脚本:
Script-Migration -From older_migration_name -To newer_migration_name -Context ApplicationDbContext
该脚本将具有一个随机名称,并将位于以下路径中:
<Your_Project_Drive>:\<Your_Project_Folder>\<Your_Project_Folder.Model>\obj\Debug\netcoreapp3.1\<Some_Random_Name>.sql
现在,只需在生产服务器的目标数据库上运行该脚本即可。