请注意,本站并不支持低于IE8的浏览器,为了获得最佳效果,请下载最新的浏览器,推荐下载 Chrome浏览器
欢迎光临。交流群:166852192

orchard历经坎坷从1.9.2升级到1.10.1


网站的主程序是1.9.2,想升级为1.10.1,主要是看1.10.1变化挺大,而且也发布很长时间了,应该稳定一些,所以准备升级,虽知这一路真是揪心呢。
变化,感觉1.10.1结构更合理一点,逻辑更严了一点,功能应该更强大一点。具体还没有研究啊。
初步来看,在Orchard.Tasks 下加入了Locking,目测可能是来支持分布式任务的

展开如下:

我对这个挺感兴趣的,所以准备升一下,看到底是搞嘛子。
第二,Orchard.Jquery弃用了,资源类统一引用Orchard.Resources。
第三、Orchard.TaskLease弃用了,Orchard.JobsQueue,也引用IDistributedLockService(见上图),而非TaskLease。
第四、新加了Orchard.Conditions,这个是从Orchard.Widgets中剥离出来的,Orchard.Widgets中的RuleProvider被弃用。
第五、新加了Orchard.Dashboards,好像可以对后台进行定制,具体还同有实践。
第六,所有模块都引用NuGet包。
第七,升级为Mvc4.5.2
第八,删除了JetBrains.Annotations命名空间及UsedImplicitlyAttribute属性。
综上,在升级前需要先对自己的模块进行代码处理,模块越多,头越大。
再次,对自己的Model.txt,一定要用心。尤其是其中的依赖项,要写好,我就因为其中一个模块没有写出折腾了很久才搞定。
本来是在1.9.2下面运行正常,结果拿到1.10.1下之后就出现了

最终经过排查发现是有一个模块的依赖项多写了一个,导致无限递归。可见1.10.1的处理比1.9.2更严格,逻辑应该更谨,由此可见一斑。
另外数据里有的模块(settings_shellfeaturerecord 表中),而实际自己的modules文夹下,没有这个模块,也会报错。1.10.1的检查更严啊,所以升级1.10.1之前要先对settings_shellfeaturerecord进行一个处理。
终于,可以运行了,妈的,登录不上,没错管理员登录不上,什么原因呢?
Orchard.Users.UsersDataMigration对UserPartRecord进行了两次升级,不知道为什么,我的没有升级成功,
        public int UpdateFrom2() {
            SchemaBuilder.AlterTable("UserPartRecord",
                table => {
                    table.AddColumn<DateTime>("CreatedUtc");
                    table.AddColumn<DateTime>("LastLoginUtc");
                });


            return 3;
        }


        public int UpdateFrom3() {
            SchemaBuilder.AlterTable("UserPartRecord",
                table => {
                    table.AddColumn<DateTime>("LastLogoutUtc");
                });


            return 4;
        }


那好吧,自己动手在数据库里增加三个字段,然后别忘了在orchard_framework_datamigrationrecord表中将如下的2改为4

终于,可以登录了,可以进后台了。兴奋,但是提醒一些模块需要升级,好嘛,点升级,不好又崩溃了。
唉,明天再整吧,心累啊。
更多详情欢迎到QQ群 166852192 交流。

作者原创内容不容易,如果觉得内容不错,请点击右侧“打赏”,赏俩给作者花花,也算是对作者付出的肯定,也可以鼓励作者原创更多更好内容。
更多详情欢迎到QQ群 166852192 交流。