asp.net-mvc - 随 Visual Studio Team Services 一起发布的 Entity Framework 迁移

标签 asp.net-mvc visual-studio azure ms-release-management

我正在尝试使用 Visual Studio Team Services 构建/发布我的 MVC 应用程序到 Azure。

我一直在关注tutorials here

目前,我可以将更改推送到存储库,然后触发构建,然后我可以手动选择要发布的构建,使用发布定义中的设置自定义 web.config 文件,并将站点推送到所需的插槽Azure Web 应用程序。

现在,我的问题出在数据库上。直接从 Visual Studio 发布时,可以选择运行代码优先迁移。它创建/更改表,然后运行种子方法。如果您只是将网站部署到一个 Web 应用程序,那么这是很好的选择,但如果您要将其多次部署到不同的实例,因此想要使用 VS Team Services,则这不是很好。

我看到发布定义中有运行 bacpac 或 sql 文件的选项,但我想这需要为每个构建手动创建这些文件。

我确信我错过了一些东西。其他人如何在构建/发布中包含模型/数据库更改。

如果有人能告诉我应该如何执行此操作,那就太好了,因为 Microsoft 文档似乎缺乏这方面的内容。

最佳答案

您应该能够通过添加以下代码来启用数据库迁移:

在 Startup.cs 文件的 Configuration 方法中,在开头添加以下行:

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

此外,在您的 Migrations/Configuration.cs 文件中,确保将以下行添加到您的 Configuration 方法中:

AutomaticMigrationsEnabled = true;
AutomaticMigrationDataLossAllowed = true; //either way works

使用这些选项使我能够在过去运行数据库迁移。

另一种选择是设置 web.config 值并以这种方式手动运行迁移,具体取决于您运行的 MVC 版本。我有一个较旧的项目,我将此代码放入应用程序启动中的 Global.asax.cs 文件中:

        if (bool.Parse(ConfigurationManager.AppSettings["MigrateDatabaseToLatestVersion"]))
        {
            // Migrations to update the database.
            Database.SetInitializer<ApplicationDbContext>(null);
            var configuration = new Configuration();
            var migrator = new DbMigrator(configuration);

            migrator.Update();

            Log.Debug("Database migrations complete.");
        }

关于asp.net-mvc - 随 Visual Studio Team Services 一起发布的 Entity Framework 迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35896900/

相关文章:

css - 如何修复服务器 MVC 上的 CSS 错误

c# - 在 asp.net MVC 中实现调度的最佳方法是什么

c# - 在 Visual Studio 2010 for C# 中启用三/三斜线 XML 注释

azure - 90 天后访问 Azure B2C 登录日志

javascript - 上传然后下载一个大文件,使用windows azure、blob存储和nodejs

c# - Web API 删除方法不起作用

asp.net-mvc - 使用AutoMapper/AutoMapViewResult时如何将下拉列表的数据获取到ViewModel中

visual-studio - Visual Studio 2017 中的默认环境字体是什么?

c# - Visual Studio 2017 RC - C# UWP 项目 - 无法创建类

azure - 将 Azure Devops PAT API 与服务主体结合使用