Redmine 5.1.4 Git 插件(包括Additionals)安装详细操作
·
Redmine 5.1.4 Git 插件(包括Additionals)安装详细操作
适用环境:Redmine 5.1.4 + Docker + Ruby 3.2 + Rails 6.1
插件版本:Additionals 3.4.0
依赖 Gem:tanuki_emoji ~> 0.10.0
0️⃣ 前提条件
- Redmine 已运行(Docker 容器或裸机均可)
- Docker 容器内可访问网络(用于 bundle 安装 Gem)
- 宿主机与容器文件共享或可拷贝插件
- 基础命令可用:bash、tar、chown、bundle
1️⃣ 插件下载与版本选择
- 从 GitHub 克隆 Additionals 仓库:
git clone https://github.com/alphanodes/additionals.git additionals
cd additionals
- 切换到与 Redmine 5.1.4 兼容的低版本:
git checkout 3.4.0
- 打包插件(可选)
tar -czvf additionals-3.4.0.tar.gz additionals/
⚠️ 注意:插件版本必须和 Redmine 主版本兼容,否则迁移会报
[Unknown migration version "7.2"]错误。
2️⃣ 拷贝插件到 Redmine 容器
- 查看容器 ID
docker ps
- 拷贝插件目录(优先使用目录而非 tar)
docker cp additionals <container_id>:/usr/src/redmine/plugins/
- 设置容器内权限
docker exec -it <container_id> bash
cd /usr/src/redmine/plugins
chown -R redmine:redmine additionals
⚠️ 注意:
- 直接拷贝
.tar.gz文件容易出现路径错误。- Redmine 容器内必须保证插件目录属于 Redmine 用户。
3️⃣ Gem 依赖处理
- 进入容器 Redmine 根目录
cd /usr/src/redmine
- 安装插件依赖 Gem
bundle add tanuki_emoji --version "~>0.10.0"
bundle install
- 处理 Gemfile 重复声明(redmineup、puma)
- 打开 Gemfile(容器内可用
nano或宿主机修改) - 删除重复行,只保留一行声明
⚠️ 注意:
- Redmine 5.1.4 对部分 Gem 版本有限制,高版本 Gem 可能导致迁移失败。
- 确认 bundle 源可访问,国内可使用 Ruby China 镜像。
4️⃣ 数据库迁移文件兼容性修正
- 进入插件迁移目录:
cd /usr/src/redmine/plugins/additionals/db/migrate/
- 修改迁移文件版本
- 例如报错:
ArgumentError: Unknown migration version "7.2"; expected one of "4.2", "5.0", "5.1", "5.2", "6.0", "6.1"
- 修改文件开头:
class RemoveDuplicatedIndexFromRoles < ActiveRecord::Migration[7.2]
# 改为
class RemoveDuplicatedIndexFromRoles < ActiveRecord::Migration[5.1]
⚠️ 注意:
- 所有迁移文件必须与 Rails 6.1 支持的版本匹配。
- 如果插件迁移中还有
disable_ddl_transaction!,确认语法兼容。
5️⃣ 执行插件迁移
- 执行数据库迁移
bundle exec rake redmine:plugins:migrate RAILS_ENV=production
- 迁移过程中可能出现警告:
WARN -- : Creating scope :visible. Overwriting existing method AgileQuery.visible.
- 这种警告可以忽略,不影响插件功能。
⚠️ 注意:
- 如果迁移报错,请检查迁移文件版本、依赖 Gem 是否安装。
- 遇到重复列或索引,可手动修改数据库或跳过对应迁移。
6️⃣ 重启 Redmine 容器
docker restart <container_id>
⚠️ 注意:
- Docker 容器内修改插件或 Gem 后必须重启 Redmine 才能生效。
- 检查 Redmine 日志确保无报错。
7️⃣ 常见坑与解决方案总结
| 类别 | 坑 | 解决方法 |
|---|---|---|
| 版本兼容 | 插件版本高,迁移版本 7.2 | 降级迁移版本 [5.1] |
| Gem | 缺少 tanuki_emoji |
bundle add tanuki_emoji --version "~>0.10.0" |
| Gem | Gemfile 重复 | 删除重复声明 |
| 文件 | docker cp 找不到文件 | 拷贝文件夹而非 tar |
| 权限 | 容器内权限不足 | chown -R redmine:redmine plugins/additionals |
| 编辑器 | vim 不存在 | 安装 nano 或宿主机编辑后复制 |
| 迁移 | 数据库已存在列 | 手动 skip 或修改 migration |
| Docker | 端口冲突 | 调整映射端口 |
| 日志 | Scope 警告 | 可忽略,不影响功能 |
8️⃣ 最佳实践
- 先备份数据库和插件目录
- 优先使用低版本插件
- 保证 bundle 环境和 Gemfile 清洁
- 容器内使用 Redmine 官方用户操作插件
- 迁移前修改 migration 版本,确保 Rails 兼容
- 安装插件依赖 Gem 并锁定版本
- 迁移完成后重启 Redmine 容器
- 检查插件在 Redmine 页面是否启用
更多推荐


所有评论(0)