项目

通用

个人资料

操作

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

Etienne Massip 更新 约 12 年前 · 53 次修订 锁定