Redmine升级 » 历史 » 修订版53
上一页 | 修订版53/84 (diff) | 下一页
Etienne Massip, 2012-05-15 17:27
错别字。
升级¶
- 目录
- 升级
步骤1 - 检查要求¶
升级Redmine的第一步是检查您是否满足即将安装的版本的要求。
步骤2 - 备份¶
建议您备份您的数据库和文件上传。大多数升级都是安全的,但以防万一,备份总不是坏事。
备份文件¶
所有文件上传都存储在files/
目录中。您可以复制此目录的内容到另一个位置以轻松备份。
MySQL数据库¶
可以使用mysqldump
命令将MySQL数据库的内容备份到文本文件。例如
/usr/bin/mysqldump -u <username> -p<password> <redmine_database> | gzip > /path/to/backup/db/redmine_`date +%y_%m_%d`.gz
SQLite数据库¶
SQLite数据库都包含在一个文件中,因此您可以将其复制到另一个位置以进行备份。
PostgreSQL¶
可以使用pg_dump
命令将PostgreSQL数据库的内容备份到文本文件。以下是一个示例
/usr/bin/pg_dump -U <username> -Fc --file=redmine.sqlc <redmine_database>
可以在以下位置找到一篇不错的博客(自荐):http://www.commandprompt.com/blogs/joshua_drake/2010/07/a_better_backup_with_postgresql_using_pg_dump/
步骤3 - 执行升级¶
现在是时候执行实际的升级了。此过程取决于您如何下载Redmine。您只需要执行以下选项之一。
选项1 - 下载版本(tar.gz或zip文件)¶
1. 在新目录中解压缩新的程序存档。
2. 将您的数据库设置文件 config/database.yml
复制到新的 config
目录。如果您正在使用 Redmine >= 1.4 且搭配 mysql 和 ruby1.9,请将数据库适配器更改为 `mysql2`。
3a. 将您的基配置设置文件 config/configuration.yml
复制到新的 config
目录。
3b. 或者,如果您是从低于 1.2.0 版本升级,将您的邮件设置从 config/email.yml
复制到新创建的 config/configuration.yml
文件中,该文件可以通过复制可用的 configuration.yml.example
文件来创建。
4. 将 files
目录内容复制到您的新的安装目录。
5. 将您 自定义 安装的插件文件夹从 vendor/plugins
目录复制到新的安装目录。请确保只复制之前 Redmine 设置中未捆绑的插件。
6. 在您的新的 Redmine 根目录中运行以下命令
rake config/initializers/session_store.rb
如果您使用的是 Redmine 的新版本,上述文件将不再存在。在这些版本上,运行
rake generate_session_store
这将生成一个文件(《config/initializers/session_store.rb》),其中包含用于保护会话数据的随机密钥。
9. 检查您可能已在 public/themes
目录中安装的任何主题。您可以复制它们,但检查更新版本是理想的。
非常重要的是:不要用旧的覆盖 config/settings.yml
。
选项 2 - 从 SVN 检出¶
1. 进入 Redmine 根目录并运行以下命令
svn update
2. 如果您是从旧版本升级到 0.8.7+ 或从 Redmine 的 trunk 版本升级到 r2493 或更高版本,您必须为 cookie 存储生成一个密钥。请参阅底部关于生成 session_store
的说明。
步骤 4 - 更新数据库¶
此步骤可能会更改您数据库的内容。转到您的新 redmine 目录,然后迁移您的数据库
rake db:migrate RAILS_ENV=production
如果您已安装任何插件,还应运行它们的数据库迁移。如果您在此迁移过程中升级 Redmine 0.8.x,您需要首先升级插件迁移
rake db:migrate:upgrade_plugin_migrations RAILS_ENV=production
rake db:migrate_plugins RAILS_ENV=production
步骤 5 - 清理¶
1. 您应该清除缓存和现有的会话
rake tmp:cache:clear rake tmp:sessions:clear
2. 重新启动应用程序服务器(例如 mongrel、thin、passenger)
3. 最后,转到 "Admin -> Roles & permissions" 检查/设置新功能的权限,如果有的话。
常见问题¶
仓库管理错误¶
reposman.rb 文件中添加了几个新功能,如果您遇到问题,请确保已指定了一个组( --group=groupnamehere)。此外,如果只复制了您的 Redmine.pm,请再次遵循此处的说明,并更新您的 Apache 配置,因为推荐的配置已更改。
生成新的 session_store.rb
/ secret_token.rb
¶
在 2.0.0 之前,需要在 Redmine 的 config
目录中生成一个 session_store.rb
文件,以便基于 cookie 的会话可以正常工作。只需运行以下命令,Redmine 将为您创建一个
rake generate_session_store
从 2.0.0 开始,它已被以下命令替换,该命令将生成 secret_token.rb
文件
rake generate_secret_token
注意:Redmine 的代码仓库中不包含 config/initializers/session_store.rb 文件,该文件由上面的 rake 命令创建。如果上述命令不工作,请确保您正在运行 Ruby 1.8.7 并且安装了 Rails 2.3.x(请参阅下面的 Rails 版本错误)。
关于缺少 session_store.rb 文件的错误¶
如果您看到关于缺少 session_store.rb
文件的任何错误,请运行上面的命令创建一个新的。
关于 Rails 版本的错误¶
请记住安装新 Redmine 版本所需的 Ruby on Rails 钩子版本(1.2.x 使用 Rails 2.3.11,1.3.x 使用 2.3.14 等)。
您可能需要升级您的 Ruby on Rails 钩子,例如。
gem install rails -v=2.3.14
关于 member_roles 的错误¶
如果您之前尝试过失败的升级/迁移,那么您可能已经创建了 member_roles 和/或 group_users 表。上面提到的数据库迁移将失败。只需登录到 MySQL 命令行并执行重命名表命令即可。
mysql> 重命名表 member_roles 为 member_roles_saved
mysql> 重命名表 groups_users 为 groups_users_saved
关于 "undefined method `add_frozen_gem_path'" 的错误¶
如果您看到此错误,请检查目录 vendor/rails
是否存在,如果存在,则将其删除或重命名,它可能包含旧的 RoR 版本。
相关资源¶
以下资源可能有助于您升级 Redmine
- Apache2 的 mod_fcgid 帮助我们在 Apache 2 上运行 Rails
- 在 Apache 上运行 Redmine
- 关于我们从 0.8.6 升级到 0.9.3 的问题及解决方法 --cybersprocket(2010-04-25)
- 关于我们从 0.9.6 升级到 1.0(RC) 的过程 --cybersprocket(2010-08-14)
由 Etienne Massip 更新 约 12 年前 · 53 次修订 锁定