OJS3.4升级3.5失败-Unknown column context in notification_subscription_settings的解决方法

所属专题:OJS期刊管理系统 来源: 丁老师原创 更新时间:2026-03-20 10:07 浏览: 678 IP属地: 深圳
OJS(Open Journal Systems)期刊投稿管理系统

升级故障:
有同学在对OJS期刊管理系统(Open Journal Systems)进行版本升级时,出现升级故障,提示"Unknown column context in notification_subscription_settings",升级失败,具体错误代码为:

A database error has occurred: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'context' in 'notification_subscription_settings' (Connection: mysql, SQL: alter table `notification_subscription_settings` modify `context` bigint null)

故障情况:
当前OJS版本:3.4.0.5
升级OJS版本:3.5.0.3
具体故障:在升级过程中未升级成功,页面提示在数据库notification_subscription_settings表中找不到context列,如图:

f10ffae6cad24d963372b3b45a5f253e90d01c42.jpg

故障分析:
1.要升级的OJS版本,升级程序因代码并未进行容错处理,升级系统不完善,在遇到某些特定版本和系统时出现报错。
2.升级程序的sql数据库脚本,可能因权限、系统等问题未能充分执行。
3.最终的问题是在notification_subscription_settings表中,有context_id列,却提示没有context列。

故障解决:
1.可以手动将notification_subscription_settings表的context_id列名,改为context。
2.如果怕会引起关联错误,可以新建一个context列(bigint 20),然后执行:

#复制context_id的数据
update notification_subscription_settings set context=context_id

全文总结:
OJS期刊管理系统因为每个版本在更新时,程序代码和数据库都进行了大量的功能迭代,并且对系统框架进行了重构,这也就引起了OJS系统在更新时,经常会遇到各种各样的错误和bug。特别是系统在安装大量插件后,插件会关联期刊主页、文章、作者等模块,在升级时有一个插件如果版本不兼容就会导致整个升级的失败。

在对OJS升级时,丁老师有3点建议:
1.升级前对网站和数据库进行完整的备份。
2.升级前停用所有OJS系统的插件和theme主题。
3.建议找专业的技术人员,最好是有OJS开发经验的工程师进行升级。这个工作普通人无法完成,非专业技术人员可能会造成整个OJS系统崩溃和数据丢失的风险。

丁老师从事学术软件研发十余年,可提供OJS系统的安装、维护、升级、Bug修复、二次开发等服务。
如需专业OJS系统技术服务,可以联系丁老师,同时也欢迎学术界的各位作者、学者、同行,针对学术软件信息化进行交流和咨询。

ojs相关文章

OJS上传文件失败出现空白的解决方法

最近有同学反应,在使用OJS期刊管理系统上传稿件文件时,文件上传失败,文件名显示为空(如下图),是怎么回事呢?经过丁老师测试,文件上传正常,说明程序和系统配置没有问题。但维度有一个文件上传不了,仔细分析发现,该文件文件名过长,导致文件上...

OJS存在任意文件上传漏洞及解决方案

近期丁老师在对OJS期刊系统进行等保工作时,发现OJS一个安全漏洞,即任意文件上传漏洞,具体内容如下。漏洞描述任意文件上传漏洞(Unrestricted File Upload),是一种常见的Web安全漏洞,由于Web应用程序在实现文件...

OJS出现Uncaught Error: C...

有使用OJS的做期刊投稿的出版社客户在提问,OJS有时候会出现一些问题,比如plugin页一直在加载,也打不开,然后投稿时提示error,具体的错误是Uncaught Error: Call to a member function g...

OJS系统中文不完整怎么办?

很多做学术期刊的客户在问,OJS期刊投稿系统切换为中文后,系统总是出现乱码,中文也没有正常显示,这是怎么回事呢丁老师?其实这个问题很常见,并且不止是中文,在OJS系统的多语言中,包括法语、德语、西班牙语、阿拉伯语、日语、韩语等语种,他们...