ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

OpenProject 12.2.2 版本解析:关键缺陷修复清单与数据库迁移升级注意事项

2026/9/15 17:05:23 拓冰建站 浏览量
OpenProject 12.2.2 版本解析:关键缺陷修复清单与数据库迁移升级注意事项 OpenProject 12.2.2 版本解析关键缺陷修复清单与数据库迁移升级注意事项【免费下载链接】openprojectOpenProject is the leading open source project management software for product, project and portfolio management. A powerful Jira alternative with agile planning, issue tracking, roadmaps, Gantt charts, time tracking, collaboration features, and more. Available on premises or in the cloud. ⭐ Star us on GitHub项目地址: https://gitcode.com/GitHub_Trending/op/openprojectOpenProject 12.2.2 于 2022-08-31 发布是一个以缺陷修复为核心的维护版本重点解决了 12.2.1 升级过程中遗留的数据库迁移journal 条目恢复失败问题并修复了通知邮件、批量复制、移动端渲染、Wiki 访问控制等 10 项已知缺陷。读完本文你将完整了解该版本的全部修复内容、受影响的已知问题及官方推荐的升级处理步骤并能结合仓库源码理解其背后的 journal活动记录机制与迁移原理。版本概览版本号OpenProject 12.2.2发布日期2022-08-31版本性质维护/缺陷修复版本bugfix release升级建议官方明确推荐所有用户升级到最新版本该版本紧跟在 12.2.12022-08-18 发布修复了严重的活动记录数据损坏问题之后主要工作是继续处理 12.2.1 引入的数据库迁移在部分环境中失败的问题并同步收尾一系列回归缺陷。已知问题待处理的数据库迁移Pending database migration这是 12.2.2 发布说明中唯一被官方单独列出的Known issue也是该版本最值得运维与升级人员关注的部分。问题背景在升级到 12.2.1 时新增了一个数据库迁移migration其作用是恢复一些被删除的历史 journal 值。关于这个迁移的起因需要回溯到 12.2.1 的发布说明在 12.2.0 中存在一个严重 bug可能随机损坏数据库中用于控制工作包、会议、Wiki 页面等对象变更展示与聚合的活动记录activity records。当对活动进行聚合用户在 5 分钟内编辑同一对象时可能删除了错误的数据库对象导致后续更新该条目时报错。该缺陷的表现包括无法访问通知中心页面空白、无法查看工作包活动、更新已有工作包时出现内部错误。12.2.1 通过迁移尝试恢复受影响记录中被删除的中间活动凡是恢复了记录的活动都会附加一条说明性注释。在 12.2.2 中的现状对于少数客户12.2.1 的上述迁移未能成功恢复所有受影响的 journal 条目导致迁移失败、升级流程无法继续。由于截至 12.2.2 发布时官方尚未能复现该问题官方给出的处理意见是如果你确实受影响可以选择忽略缺失的 journal当升级到 12.2.2 且迁移再次失败时迁移过程会输出强制完成迁移的步骤强制执行后会输出包含所有这些 journal 相关信息的debug 日志请将该日志提交给官方对应社区工单 #43876或联系 OpenProject 支持以帮助定位该问题。从源码理解 journal 机制该问题涉及的核心是 OpenProject 的 journal活动/变更历史机制。在仓库中journals表的表结构定义位于 db/migrate/tables/journals.rb其中值得注意的字段包括journable多态关联journable_idjournable_type同一张表承载工作包、Wiki 页面、消息、新闻等多种对象的变更记录data多态关联data_iddata_type指向各具体对象类型对应的 journal 数据行如work_package_journals、wiki_page_journalsversion字段配合(journable_type, journable_id, version)的唯一索引保证每个对象每次变更的版本号不重复validity_periodtstzrange类型配合排除约束确保同一对象的各 journal 有效期区间不重叠这是活动时间线正确性的底层保证。而 12.2.0 的损坏 bug 所影响的活动聚合从源码看与 journal 就绪事件密切相关lib/open_project/events.rb 中定义了aggregated_work_package_journal_ready、aggregated_wiki_journal_ready、aggregated_news_journal_ready、aggregated_message_journal_ready等事件常量活动聚合逻辑会等待这些事件以将相邻短时间内的多次变更合并展示。12.2.1/12.2.2 的恢复迁移正是针对这类被错误删除的中间 journal 条目进行补写。提示如果你在升级过程中遇到 pending database migration 报错请先确认是否属于上述 12.2.1 恢复迁移的失败场景按迁移输出的提示强制完成后收集 debug 日志再继续后续迁移。缺陷修复清单详解12.2.2 共修复 10 项缺陷按功能领域归类如下通知与邮件修复Documents added 邮件通知中的链接错误#41114文档添加类通知邮件内嵌的跳转链接指向了错误位置影响用户从邮件直达文档的体验。修复选择邮件提醒日期时无法取消全部日期#43158邮件提醒设置中当用户已勾选若干星期几后无法通过再次点击取消全部选择导致不接收提醒的诉求无法实现。批量操作与表单校验修复当 Assignee负责人值为 nobody 时的批量复制错误#43145批量复制工作包时如果源工作包的负责人被设置为无人nobody复制过程会抛出异常中断。修复Assigned to invalid 错误消息语法错误#43514该字段校验失败时的提示文案存在语法问题造成用户困惑。修复系统 read only 字段问题#43893系统内置只读字段的读写控制存在缺陷涉及表单提交与校验逻辑。前端与移动端修复移动端图形渲染缺陷#43555移动端浏览器下存在排版/图形渲染异常涉及界面布局与交互。修复新建项目选择器工作不正常#43720新建项目流程中的项目选择器selector无法正确工作影响项目创建体验。活动与错误处理修复打开活动页时报 Error 500undefined method getutc#43771在特定数据如缺失或异常时间值下打开活动页面会触发服务器内部错误属于上一版本活动记录损坏问题的下游表现之一。Wiki 权限修复最后一个菜单项丢失后 Wiki 可被访问#43841当 Wiki 的菜单项menu item因删除而全部丢失时Wiki 本应不可访问但实际仍可被访问存在权限/可用性隐患。LDAP 集成修复无法通过 rake 任务ldap:register设置 LDAP 过滤器字符串#43848使用命令行注册 LDAP 认证源时过滤器filter参数无法正确写入影响 LDAP 目录筛选配置。升级与迁移修复从 12.1.4 升级到 12.2.1 失败pending database migration#43876正是前文 Known issue 对应的工单该修复在 12.2.2 中提供了可执行的强制完成方案。升级建议与操作指引尽快升级12.2.2 为缺陷修复版本官方明确建议升级到最新版本尚未升级到 12.2.0/12.2.1 的实例应直接升级到 12.2.2避免暴露于活动记录损坏 bug。升级前备份数据库由于涉及 journal 数据恢复类迁移建议在升级前对数据库做完整备份以便回滚。迁移失败的处理若遇到 pending database migration按迁移输出的步骤强制完成迁移随后会得到 debug 日志请保留该日志并提交给官方工单 #43876或支持团队。升级后验证重点检查通知中心、工作包活动页、Wiki 菜单与访问控制、新建项目流程等本版本涉及的修复点是否恢复正常。致谢社区贡献本版本的缺陷发现与修复离不开社区成员的支持。官方特别感谢以下成员的报告与协助定位Anatol Gafenco、Christina Vechkanova、Helmut Fritsche、Martin Dittmar、André van Kaam。相关阅读OpenProject 12.2.1 发布说明了解活动记录损坏 bug 的完整背景与 HTTPS 配置变更journals 表结构定义journal 机制的数据层设计活动事件常量定义活动聚合就绪事件活动提供者基类活动数据的查询与组装实现【免费下载链接】openprojectOpenProject is the leading open source project management software for product, project and portfolio management. A powerful Jira alternative with agile planning, issue tracking, roadmaps, Gantt charts, time tracking, collaboration features, and more. Available on premises or in the cloud. ⭐ Star us on GitHub项目地址: https://gitcode.com/GitHub_Trending/op/openproject创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考