gpt4 book ai didi

asp.net-mvc - 如何首先使用实体​​框架代码部署到生产环境

转载 作者:行者123 更新时间:2023-12-04 21:18:25 26 4
gpt4 key购买 nike

我来自 asp.net Web Forms 切换到 MVC 和 Entity Framework 代码优先方法。我有个问题。如何设置我的环境以部署到生产环境?

我正在使用 Visual Studio 2012 并部署了一个 Web 部署包。在本地,我有 SQL Express,在生产中,我有 SQL Server 2008。

我想要的是在我的 PC 上本地开发一个测试,并不时使用 Web 部署包将我的解决方案部署到生产环境中。我不想在生产系统中运行迁移,相反,我想从 Visual Studio 生成脚本,然后我可以将其附加到生产 SQL。

我试过了:

  • 在开发中创建初始迁移。
  • 本地更新数据库
  • 生成脚本,update-database -script -sourcemigration:InitialCreate
  • 在生产中应用此脚本
  • 将应用程序部署到生产

  • 这是正确的方法吗?我将在本地运行的迁移呢?由于我的迁移代码,它们不会在生产中部署到我部署时吗?

    在 global.asax
    Migrator.RunMigrations();

    其中 RunMigrations 是这样的自定义 Migrator 类中的静态方法
    public class Migrator
    {
    public static void RunMigrations()
    {
    var migrator = new Configuration();
    var dbMigrator = new System.Data.Entity.Migrations.DbMigrator(migrator);
    if (dbMigrator.GetPendingMigrations().Any())
    {
    dbMigrator.Update();
    }
    }
    }

    最佳答案

    您可以通过 Web Setup Project (安装需要 MSI 自定义操作):

    更新数据库的实际工作可以通过 migrate.exe 工具完成。要使 MSI 包正常运行,结果证明是一个挑战。我首先将 migrate.exe 包含在安装包中,将其与系统程序集一起部署到 bin 目录中。支持将 .exe 文件作为 Web 安装项目中的自定义操作运行。不幸的是,除非将工作目录设置为 bin 目录,否则我无法让 migrate.exe 工作。自定义操作的工作目录默认为 c:\windows\system32。为了解决这个问题,使用了一个小的 vb 脚本。

    http://coding.abel.nu/2012/04/update-database-msi-custom-action/

    更新:

    我找到了 this , thisthis ,也许会有所帮助。

    关于asp.net-mvc - 如何首先使用实体​​框架代码部署到生产环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17464115/

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