【问题标题】:How do I update my database on my windows server?如何更新我的 Windows 服务器上的数据库?
【发布时间】:2017-11-17 20:51:20
【问题描述】:

我想将我的更改部署到我的服务器,但由于我在数据库中进行了一些更改,我收到了错误消息。

支持“DbContext”上下文的模型自数据库创建以来已更改。

我在 Visual Studio 用户 add-migrationupdate-database 中使用 包管理器控制台 在本地解决了这个问题。我应该如何更新服务器上的数据库?我还在Configuration.cs 中添加了自动迁移功能,但这并没有解决问题。

 public Configuration()
        {
            AutomaticMigrationsEnabled = true;
        }

【问题讨论】:

    标签: .net visual-studio entity-framework iis database-migration


    【解决方案1】:

    嗯...传统上,您必须对生产数据库运行 Update-Database 命令。该命令具有允许您指定指向特定数据库的连接字符串参数的参数:

    Update-Database -ConnectionString <String> -ConnectionProviderName <String> 
    [<CommonParameters>]
    

    例子:

    Update-Database -ConnectionString "Data Source=MyDb;Initial Catalog=MyCatalog;Integrated Security=True" -ConnectionProviderName "System.Data.SqlClient" -Verbose -Script
    

    提示:首先使用 -Verbose 和 -Script 参数以确保没有任何问题。这将只创建迁移 SQL 脚本,而不对数据库进行任何更改。之后,调用不带 -Script 参数的相同命令来提交更改

    【讨论】:

    • 你能举例说明connectionString应该是什么样子吗?我不确定我应该在那里放什么。
    • 如果您查看您的 xml 配置,在“connectionStrings”部分中,您将看到具有属性“name”、“connectionString”和“providerName”的生产连接字符串(如果您使用配置转换,只需预览发布转换即可查看更新生产连接)。然后,您可以将这些字符串用作 update-database 命令的参数: 示例:Update-Database -ConnectionString "Data Source=MyDb;Initial Catalog=MyCatalog;Integrated Security=True" -ConnectionProviderName "System.Data.SqlClient" -Verbose -脚本
    • 当然,您可能需要将安全设置更新为特权数据库帐户
    • 我还是做错了什么。我将“集成安全性”放在 False 上,并通过添加将用户名和密码添加到连接字符串中:用户 ID=+用户名_;密码=_密码_”。现在我得到一个错误,找不到或无法访问。我已经检查了远程连接是否允许使用 SQL 服务器管理 Studio。这是我正在使用的命令:Update-Database -ConnectionString "Server=IP\SQLEXPRESS;Database=DBNAME;Trusted_Connection=True;Integrated Security=false; User Id=USERNAME;Password=PASSWORD -ConnectionProviderName System.Data.SQLClient -Verbose
    • 取出Trusted_Connection=True。然后google sql server 连接字符串。您是否设法通过 SSMS 连接到您的数据库?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-22
    • 2015-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多