gpt4 book ai didi

c# - EntityFramework 迁移尝试创建现有数据库

转载 作者:可可西里 更新时间:2023-11-01 08:48:55 24 4
gpt4 key购买 nike

我们正在将一个简单的 ASP.NET MVC 应用程序部署到我们的临时服务器上,当 EntityFramework 尝试迁移现有数据库时,我们收到以下错误。

CREATE DATABASE permission denied in database 'master'. 

情况如下:

  • 这是第一次运行迁移。
  • 数据库已经存在(它实际上是一个 Umbraco 数据库)。

看起来下面的方法(来自 EntityFramework)返回 false,而它显然应该返回 true:

System.Data.Entity.Migrations.DbMigrator.EnsureDatabaseExists() 

数据库初始化器有以下代码:

Database.SetInitializer(new MigrateDatabaseToLatestVersion<DataContext, Configuration>());

自动迁移已关闭,因为我们正在使用基于代码的迁移。

连接字符串指向正确的数据库,并且用户对该数据库拥有 db_owner 权限。用户无权访问服务器上的其他表。

这是一个常见问题吗?有谁知道解决方案吗?

谢谢!

最佳答案

确保数据库存在 - 执行以下脚本

IF db_id(N'MyDatabaseName') IS NOT NULL SELECT 1 ELSE SELECT Count(*) FROM sys.databases WHERE [name]=N'MyDatabaseName'

假定用户有权查询 'sys.databases' 以获取数据库列表。如果此查询失败 - EF 认为尚未创建 DB 并尝试再次创建它。

确保执行迁移的用户能够成功执行上述查询

关于c# - EntityFramework 迁移尝试创建现有数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14277191/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com