首页 > 代码库 > Orchard之Module升级

Orchard之Module升级

在上一篇中,我们提到了 Migrations,这一篇稍微衍生一下。

1:Migrations 是什么

Orchard 提供了模块升级的功能,即,如果我们模块发布后,需要进行升级,我们可以通过编码来实现;

2:Migrations 的形式

public class Migrations : DataMigrationImpl
{
    public int Create()
    {
        return 1;
    }

    public int UpdateFrom1()
    {
        // 要执行的代码
        return 2;
    } 

}

注意哦,每次升级,都是不一样的方法,下次升级,就是:

public int UpdateFrom2()
{
    return 3;
}

3:返回值存储在哪里?

在 [Orchard_Framework_DataMigrationRecord] 这表,VERSION 字段就是,如果你不知道怎么更新到哪个版本了,查看它就是了。

4:关于 UPDATE 提示

官方文档中提到,每次在 Migrations 之后,如果我们退出再登录到后台,就会提示 UPDATE。关于这一点,仿佛有点小问题,实际上你也许看不到这个 UPDATE 提示,你也许会碰到跟我一样的结果:

*重启应用程序,看到 UPDATE了;

*实际上还是没有看到 UPDATE,但是 Migrations 中的 UPDATEFROM n 方法中的代码确实是被执行了的。

那么,如何确定代码是否真的被执行了呢?还是返回到第 3 步,看看数据库中的 VERSION 是否已更新,如果是,那就是是了。