部署到 Azure 而不是 运行 EF Code First 迁移
Deploying to Azure not running EF Code First Migrations
我正在 运行宁 Entity Framework 代码优先迁移。我的新版本添加了一个 table,修改了一些 table 和 运行 一些脚本。这在使用更新数据库进行本地开发时非常有效。
部署后,新的 table 未创建,我从客户端收到错误消息。我将调试器附加到已部署的站点以跟踪正在发生的事情。它到达控制器,通过正常流程,并在第一次调用新的(但实际上还不存在)table 时,它跳进了我的迁移配置 class。
internal sealed class Configuration : DbMigrationsConfiguration<myProject.api.AuthContext>
{
public Configuration()
{
AutomaticMigrationsEnabled = false;
MigrationsDirectory = @"Migrations\Auth";
ContextKey = "myProject.api.AuthContext";
}
所以我觉得很好,一切都应该很好。它经历了所有这些,returns 到初始数据库调用,但随后调用 returns 出错,粘贴在下面
The model backing the 'AuthContext' context has changed since the
database was created. Consider using Code First Migrations to update
the database (http://go.microsoft.com/fwlink/?LinkId=238269).
这令人惊讶,因为我确实启用了代码优先迁移!使用标准的 enable-migrations 和 add-migration,当我发出 update-database 命令时,它们在我的本地机器上完美运行。
1) 如何在部署到 Azure 后将代码优先迁移到 运行?
更新 1
这是我的发布设置。出于某种原因,我没有复选框选项:"Execute Code First Migrations",我猜这就是问题所在……
万岁!我的更新是问题所在。我从其他 SO 帖子中发现他有时会发生。清理并重建,然后重新启动 VS,恢复了 'Execute Code First Migrations' 复选框。重新部署,一切正常。
你检查过这些代码行了吗?
在你的web.config中:
<appSettings>
<add key="MigrateDatabaseToLatestVersion" value="true"/>
</appSettings>
在您的 global.asax.cs / Startup.cs(OWIN 启动)中:
var configuration = new Migrations.Configuration();
var migrator = new DbMigrator(configuration);
migrator.Update();
我正在 运行宁 Entity Framework 代码优先迁移。我的新版本添加了一个 table,修改了一些 table 和 运行 一些脚本。这在使用更新数据库进行本地开发时非常有效。
部署后,新的 table 未创建,我从客户端收到错误消息。我将调试器附加到已部署的站点以跟踪正在发生的事情。它到达控制器,通过正常流程,并在第一次调用新的(但实际上还不存在)table 时,它跳进了我的迁移配置 class。
internal sealed class Configuration : DbMigrationsConfiguration<myProject.api.AuthContext>
{
public Configuration()
{
AutomaticMigrationsEnabled = false;
MigrationsDirectory = @"Migrations\Auth";
ContextKey = "myProject.api.AuthContext";
}
所以我觉得很好,一切都应该很好。它经历了所有这些,returns 到初始数据库调用,但随后调用 returns 出错,粘贴在下面
The model backing the 'AuthContext' context has changed since the database was created. Consider using Code First Migrations to update the database (http://go.microsoft.com/fwlink/?LinkId=238269).
这令人惊讶,因为我确实启用了代码优先迁移!使用标准的 enable-migrations 和 add-migration,当我发出 update-database 命令时,它们在我的本地机器上完美运行。
1) 如何在部署到 Azure 后将代码优先迁移到 运行?
更新 1
这是我的发布设置。出于某种原因,我没有复选框选项:"Execute Code First Migrations",我猜这就是问题所在……
万岁!我的更新是问题所在。我从其他 SO 帖子中发现他有时会发生。清理并重建,然后重新启动 VS,恢复了 'Execute Code First Migrations' 复选框。重新部署,一切正常。
你检查过这些代码行了吗?
在你的web.config中:
<appSettings>
<add key="MigrateDatabaseToLatestVersion" value="true"/>
</appSettings>
在您的 global.asax.cs / Startup.cs(OWIN 启动)中:
var configuration = new Migrations.Configuration();
var migrator = new DbMigrator(configuration);
migrator.Update();