【问题标题】:What triggers the Orchard Migration.cs to run when deploying to Azure?部署到 Azure 时触发 Orchard Migration.cs 运行的原因是什么?
【发布时间】:2017-12-03 06:32:05
【问题描述】:

我继承了一个项目,该项目是作为 Orchard CMS 的一个模块构建的。我应该指出我不是 Orchard 或 ASP.NET 编程方面的专家。我是一个桌面应用程序的人。我的网络技能足够强大,足以对自己和他人构成危险。 :-)

在开发过程中,我们使用 Migrations.cs 中的 UpdateFromXX() 方法向架构中添加了几个新字段。如果我回滚我的 Azure 数据库并从我的开发环境 (VS2017) 运行 Orchard,我可以在我的 UpdateFromXX() 方法中设置一个断点并证明代码已执行并在我的数据库中正确创建我的新字段。

但是,如果我回滚我的数据库并将我的 Orchard 站点部署到 Azure(而不从我的开发环境中运行它),Migrations.cs 似乎不会运行,所以我的任何新代码与新的 db 字段交互的 has 将失败,因为数据库中缺少这些字段。

在 Azure 中部署时,使 Orchard 执行/重新执行 Migrations.cs 逻辑的正确方法是什么?我的意图很简单,当我们完成开发和测试并准备将更新发布到我们的生产服务器时,我可以简单地发布新站点,我的生产数据库将自动升级(因为新发布的果园将下降通过 Migrations.cs 并执行任何必要的 UpdateFromXX() 方法)。

【问题讨论】:

    标签: c# asp.net azure-web-app-service database-migration orchardcms-1.9


    【解决方案1】:

    请检查您的模块的 Orchard_Framework_DataMigrationRecord 记录。您会发现它是否为您的模块显示正确的版本。如果您的 UpdateFromXX 方法中的版本号小于 XX,则将执行 UpdateFromXX 方法。另外,请检查禁用和启用您的模块是否可以解决您的问题。

    【讨论】:

    • 很好的输入,但我确实检查了 DataMigrationRecord 并且我的 UpdateFromXX 肯定应该已经执行。事实上,当我在 IDE 中运行代码时,它确实 执行了。似乎当它被部署到果园时,migrations.cs 被忽略了。我将尝试禁用和重新启用该模块,这可能足以触发它。
    猜你喜欢
    • 1970-01-01
    • 2019-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-28
    相关资源
    最近更新 更多