在上一篇中,我们提到了 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 是否已更新,如果是,那就是是了。