琪依坤 | 羽毛在飛

Good Luck To You!

ZBlog版本更新后新建文章失败

我的这个网站是使用ZBlog PHP搭建的,有好几年了,始终也没对ZBlog做更新,最近发现想下载一些主题和插件都不行了,应用中心总是下载失败。查了资料才知道,原来ZBlog的官方域名更换了。只能手动下载应用中心,先将应用中心更新,然后再通过应用中心更新整个ZBlog。在此留下个脚印。

https://bbs.zblogcn.com/thread-104252.html  有详细的说明。

https://app.zblogcn.com/?id=231 下载应用中心的插件,当前下载的文件名叫AppCentre_1645524850_75430ede0a53fd1414552a2fe39c452a.zba,估计版本更新后,下载的文件名也会变。
在后台管理-插件管理,本地上传并安装插件zba文件,这样应用中心就安装好了。
然后在后台管理-应用中心,进行系统更新与校验。
本以为这样就OK了,但在新建文章时发现了问题。新建文章保存时发生错误,提示没有log_CreateTime和log_UpdateTime列。我不清楚原来有没有这样的表字段,估计是没有,不清楚为什么更新时不更新数据库字段,猜测可能是系统更新跨的版本太多,中间应该有版本是做这个动作的。在网上查了一下,竟然没有找到类似的资料。这就比较诡异了,难道只有我一个人遇到这样的问题?
遇到问题不可怕,想办法解决就好了。到网上搜索SQLite浏览编辑工具,有很多开源的。我选择的是SQLite Studio,很诡异的事情发生了。当前最新版本是3.3.3,竟然提示打开数据库。还好我之前有用过3.1.1,而且还保留着,就用3.1.1打开看看,发现能够打开。原来数据库竟然是SQLite 2的版本,这可就有年头了,现在都是SQLite 3。我不禁暗暗庆幸,幸好3.1.1能够打开,否则我都怀疑数据库损坏了。然后对zbp_post表进行编辑,增加log_CreateTime和log_UpdateTime字段。这里也有一个诡异的事情,参照log_PostTime添加,字段类型是integer,不是DateTime。另外,添加约束,默认值竟然没有办法添加。索性非空和默认值的约束就不添加。
更改好之后,上传覆盖原来的数据库,新建文章就可以保存了。切记,修改前的数据库要做备份,否则可能几年的网站数据都付之东流水。
从本次的ZBlog更新来看,ZBlog的系统更新还不完善。从技术上,如果同时支持渐进式和跨越式的版本更新,需要有一个Base版本判断;从测试上,明显看出没有针对之前发布的每个版本做升级测试。懂点技术的,可能觉得没什么,只要数据库没坏,数据肯定还在,想办法修正就好了。可如果不懂呢,可能就是灾难性的。

更多精彩请关注公众号:

发表评论:

Powered By Z-BlogPHP 1.7.2

沪ICP备12032294号-1