跳转至
For the complete DHIS2 documentation index, see llms.txt.

2.37 升级说明{ #237-upgrade-notes }

:警告:如果从早期版本升级,请确保您已阅读PREVIOUS RELEASE中的升级说明

数据库

API{ #api }

  • 删除了 /api/userCredentials API 端点。API 用户应改用 /api/users/api/userLookup API 端点。
  • 删除了与图表 (/api/charts) 和报告表 (/api/reportTables) 相关的 API。用户应改用可视化 API (/api/visualizations)。其他引用图表和报告表的现有端点现在将引用 Visualization。

当局{ #authorities }

  • 现在需要使用现有的 F_GENERATE_MIN_MAX_VALUES 权限才能在数据管理应用程序中生成最小-最大值。以前需要使用 F_PERFORM_MAINTENANCE
  • 创建数据审批级别需要F_DATA_APPROVAL_LEVEL权限。
  • 创建数据审批工作流需要 F_DATA_APPROVAL_WORKFLOW 授权。

审核

在 2.38 中,我们将把审计的默认位置从数据库改为名为 dhis-audits.log 的日志文件。如果您不希望出现这种 行为,建议在 dhis.conf 中添加这几行:

audit.database = on
audit.logger = off

针对补丁的更改{ #patch-specific-changes }

2.37.5

  • 删除了返回 JSONP(Accept=application/javascript)的 GET /systemSettings 功能

未来的应用程序接口变更{ #future-api-changes }

请注意,从 2.38 版开始,一些 API 端点会稍微改变其响应根对象,以便与大多数端点保持一致。 其响应根对象,以便与大多数端点保持一致。 2.38 版之前返回的根对象将成为 2.38 版返回的根对象中名为 response 的成员。 的成员。用户可以选择使用 /api/37/...... "来获取旧的行为,或者通过" .response "来解压缩到新的响应。 .response` 从 2.38 响应中解析旧的根对象。 如果是错误响应,HTTP 状态代码也会从 "200 OK "变为 "409 Conflict"。

受影响的端点有

  • 使用 JSON/XMLPOST /api/completeDataSetRegistrations (仅非 async 受影响)。
  • 使用JSON/XML/ADX/CSVPOST /api/dataValueSets (仅非async受影响)
  • JSON/XML/GML/CSV发送POST /api/metadata(只影响非async)。
  • POST /api/predictions"(仅非 "async "受影响)
  • PUT /api/predictions(仅非 async 受影响)
  • PUT /api/relationships/{id}
  • JSON/XML 输入 PUT /api/users/{uid}

迁移(图表和报表){ #migrations-chart-and-reporttable }

根据您更新的 DHIS2 版本,您可能会面临与删除 ReportTable 和 Chart 表相关的迁移问题/错误。 故障可能是由 DHIS2 旧版本中仍然存在的表引起的。尽管它们已不再使用,但仍可能被引用。 当迁移脚本尝试删除 ReportTable 和 Chart 表时,这将导致错误,因为这些遗留表中存在约束。 有关此问题的更多详细信息,请访问 https://jira.dhis2.org/browse/DHIS2-12601

一旦发现并确认了这些问题,在尝试迁移到 DHIS2 2.37 之前,需要放弃一些遗留表。

下面我们列出了需要在 PostgreSQL 实例中直接执行的 SQL 语句。这些 SQL 语句适用于起始 DHIS 2 版本介于 2.24 和 2.31(含)之间的情况。

DROP TABLE IF EXISTS charttranslations CASCADE;
DROP TABLE IF EXISTS reporttabletranslations CASCADE;
DROP TABLE IF EXISTS dashboarditem_reporttables CASCADE;
DROP TABLE IF EXISTS dashboarditem_charts CASCADE;

如果语句执行成功,您就可以再次尝试升级。

短信代码{ #sms-codes }

在升级过程中,与短信代码相关的迁移可能会失败,这取决于数据库中的 categoryoptioncomboid 是否无效。相关迁移名为 V2_37_46__Add_coc_fk_in_smscode.sql。如果出现这种情况,可以使用下面提供的 SQL 脚本解决。更多详细信息,请访问 https://dhis2.atlassian.net/browse/DHIS2-15169

应用脚本后,重试升级过程。这样就能解决问题,成功完成升级。

注意:在升级过程中执行任何 SQL 脚本之前,请确保有适当的备份。

-- 将无效的猫咪选项组合设置为默认值
更新 smscodes 设置 optionid = (
  select categoryoptioncomboid from categoryoptioncombo where name = 'default')
where optionid not in (
  select distinct categoryoptioncomboid from categoryoptioncombo)
或 optionid 为空;