【问题标题】:Applying existing migrations for ApplicationDbContext - cannot open database requested为 ApplicationDbContext 应用现有迁移 - 无法打开请求的数据库
【发布时间】:2021-08-25 16:30:23
【问题描述】:

所以我有一个 ASP.NET MVC 应用程序,我使用 Visual Studio 中的发布功能在 IIS 上部署它。我已经对现有版本的数据库和应用程序进行了一些更改 - 这就是我所做的:我对生产服务器上的数据库进行了很少的更改(只是在两个表中添加了一个列并将它们 FK 到另一个表)。然后我从这个生产数据库中获取生成脚本,转到本地(开发)SQL 服务器并运行生成脚本以在本地创建数据库。之后,将此本地数据库实例搭建到 VS 中(以在本地获取修改后的模型类)。然后,在对应用程序进行一些较小的修改后(我基本上只是添加了一些文档上传功能),我进行了发布并将其部署在生产服务器上。 但是,我在尝试登录网站时遇到了以下错误:error screenshot 为什么会这样?如果我在本地运行建议的 Update-Database 命令(并且从那里我无法访问目标数据库),如何通过 Visual Studio 包管理器命令应用迁移? 非常感谢您的帮助。

【问题讨论】:

    标签: c# sql-server asp.net-mvc entity-framework-core


    【解决方案1】:

    您需要为您的更改添加迁移,如下所示:

    Add-Migration Version2
    

    它会生成迁移文件,然后你可以运行

    Update-Database
    

    在数据库中应用更改。 您不能手动迁移数据库更改。它应该在 Add-Migration 命令下创建一个新的迁移版本。

    【讨论】:

    • 谢谢。但是,如果我的目标不是本地数据库,而是另一台服务器上的数据库,我看不出这将如何工作。 Update-Database 命令只能影响本地数据库。我对这个错误有点困惑,因为我已经对目标数据库进行了必要的更改,然后使用了数据库优先的方法。那么迁移的意义何在?
    • Update-Database 命令以本地 sql server 数据库为目标,如果您想在远程服务器中进行更改,您可以使用类似这样的参数 Update-Database -ConnectionStringName "MyConnectionString"
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多