最近总监给我一个任务,要求我对1.2.1版本的redmine迁移到另外一个服务器,并升级到当前最新的2.3.1版本redmine。有了这个要求就在网上查看文档,我看的是。
当时看的以为就是迁移方面的,没想到折腾了一整天都没有成功,各种错误发现,解决了遇到的各种问题又遇到了另外的问题,总的来说就是一直不成功,所以我决定听30分钟歌曲换个心情再来弄这个玩意。最后当我认认真真的观看了这个文章后,我才发现这个文章是关于在本地为redmine升级的,而不是迁移(就这样浪费了我一天),最后根据经验借鉴,找到了实现迁移的方法,目前已经成功的解决此问题,下面分享一个我的经验,希望对大家有帮助。
本文分2个部分,一个是本地版本更新,一个是异地迁移版本更新。
都是围绕着redmine从1.2.1版本升级到2.3.1版本
系统环境都是CentOS 5.6
1.2.1版本的redmine使用的ruby为1.8.5
2.3.1版本的redmine使用的ruby为1.9.3
记住在进行版本更新的时候一点要更新ruby,并且版本为1.9.x
一、本地版本更新
1、备份数据库,redmine的数据都是存放到数据库里,所以版本更新的第一步就是备份当前数据库(这步主要是防止升级出现问题,能及时的回复数据,小心为主)
我使用的是mysqldump,我曾经咨询过我公司的dba,他说一般数据库的ibdata日志如果使用共享表空间,大小超过20g的话,他使用xtrabackup备份与恢复,小于的话都是使用mysqldump,我按照他的方法实验了一下,确实在进行备份redmine的时候,使用mysqldump备份与恢复速度更快、更方便。
使用的命令为mysqldump –u 用户名 –p 密码 –database 数据库名称 >/tmp/redmine.sql
使用这个命令是把redmine数据库全库备份到tmp目录的redmine.sql里
2、下载最新的版本并解压
wget
tar zxf redmine-2.3.1.tar.gz
mv redmine-2.3.1 redmine
3、修改数据库的配置文件
cd redmine
cp config/database.yml.example config/database.yml
vim config/database.yml
修改其中mysql2里的redmine数据库名称、用户名与密码
在这步官网要求
Copy your database settings-file config/database.yml into the new config directory. If you're running Redmine >= 1.4 with mysql and ruby1.9, change the database adapter to `mysql2`.
但如果你使用mysql的话,根据官网的要求在进行下一步
rake generate_secret_token
会出现pg_config找不到,要你安装postgresql,所以没有必要按照官网的做,直接把最新版本的redmine里的数据库配置模板给重命名并修改数据库信息即可。
4、从老版本的redmine把config/configuration.yml复制到新版本的config目录里
5、把老版本里的files文件都复制到新版本里的files里(这个文件里包括你所有的上次文件,所以一定要复制的);
6、生成随机的密钥文件来加密会话数据
rake generate_secret_token
完成后可以在config/initializers/里看到有secret_token.rb文件
7、使用rake db:migrate RAILS_ENV=production来更新你的数据库,否则运行新版本redmine到使用老版本数据库与数据的时候,在打开settings界面会报错误;
如果你运行了一些插件,也要运行他们的数据运行程序,需要使用下面命令
rake redmine:plugins:migrate RAILS_ENV=production
8、更新之前的存储与session
rake tmp:cache:clear
rake tmp:sessions:clear
9、更新版本完成,运行redmine就可以。
现在就已经完成了你在本地进行redmine的版本更新。
Redmine 的详细介绍:请点这里
Redmine 的下载地址:请点这里
推荐阅读:
最简化的Ubuntu 10.04下Redmine部署方法
Ubuntu 9.10下搭建基于PostgreSQL的Redmine
如何将Turnkey Redmine 虚拟机从Redmine 1.0.5 升级到1.2
CentOS5下进行Redmine环境搭建,邮件服务配置,LDAP配置