asp.net-core - ASP.NET Core MVC:发布项目后,如何强制迁移更新到数据库?
问题描述
我有一个我一直在 ASP.NET Core MVC 中工作的项目,现在我已经发布了它:
我希望能够将所有迁移强制到我们服务器上活动的数据库上(我的本地数据库只是一个副本,因此命名和表名等是相同的)。
一旦我将文件复制到服务器文件夹并运行它,目前没有任何迁移更新数据库,并且我得到缺少列和表等错误。
我尝试在已发布的文件上使用 cmd
dotnet AppName.dll database update
正如许多人所建议的那样,但这根本不起作用。它似乎根本没有阅读命令。
有人可以给我一个直接的答案吗?我一直在努力寻找一个不能解释该做什么或旧的不再有效的方法的答案。
解决方案
您可以使用
app.UseDatabaseErrorPage();
在您的 StartUp.Configure 中。这将显示您从开发中知道的应用迁移页面。
另一种方法是在开发中创建迁移脚本并将其用于生产数据库。您可以在项目目录(StartUp.cs 所在的位置)中使用 cmd 创建一个幂等脚本。
dotnet ef migrations script --output "migration.sql" --idempotent
这将创建一个脚本(一个新的文件 migration.sql),它将迁移历史记录中处于先前级别的任何数据库带到当前级别。
推荐阅读
- mongodb - 如何匹配由连字符和空格等特殊字符组成的字符串
- html - 如何在 servicenow 中设计表格
- excel - 如何将图表从一张表复制到另一张表或设置图表的目的地?
- javascript - 链接使用javascript加载内容的子链接的问题
- vaadin7 - vaadin7 右边有两个 HorizontalLayout 一个
- python - 模型需要很长时间才能加载到 GCP 应用引擎和工作人员重新启动
- handlebars.js - 如何在nestjs中呈现页眉页脚和主要包含分开
- prolog - Prolog 概念 - 使用递归替换原子
- php - SQL,PHP在sqlsrv_fetch_array之前获取总计数
- javascript - 替代/替代 queryCommandState('bold')