近期公司使用的redmine版本升级,由于此次升级版本跨度太大,数据库表结构有所改变,故在此记录;
升级前:
服务器环境:win server 2008
redmine版本:2.6..10
升级后:
服务器环境:win 10
redmine版本:4.0.3
redmine数据库升级操作:
0、新版本的数据库初始化;正常安装完之后,数据库会初始化;
redmine安装可以参考如下文章:
http://www.redmine.org.cn/499.html
1、从旧环境中把数据库的数据delete+insert 导出(除users,issue_statuses之外);
2、把users,issue_statuses两张表的创建语句和insert导出;
3、在新库的环境中执行数据导入;
4、在新库中创建users_bk,issue_statuses_bk两张备份表,就是旧库的users和issue_statuses表;
5、把旧库中的users和issue_statuses表数据导入到上述两张备份表中;
6、执行sql
如下操作前,先把下面几张表的数据清空掉;
--新库的users表相比较旧库中的users表缺少了email字段;(因为新增了一个email_addresses用户邮件地址关联表;)
--往新库的users表中插入数据;
INSERT IGNORE INTO `users` (`id`, `login`, `hashed_password`, `firstname`, `lastname`, `admin`, `status`, `last_login_on`, `language`, `auth_source_id`, `created_on`, `updated_on`, `type`, `identity_url`, `mail_notification`, `salt`, `must_change_passwd`, `passwd_changed_on`)
Select id,login,hashed_password,firstname,lastname,admin,status,last_login_on,language,auth_source_id,created_on,updated_on,type,identity_url,mail_notification,salt,must_change_passwd,passwd_changed_on from users_bk;
--新库的issue_statuses表相比较旧库中的issue_statuses表缺少了is_default字段;
--往新库的issue_statuses表中插入数据;
Insert into issue_statuses ( id,name,is_closed,position,default_done_ratio)
select id,name,is_closed,position,default_done_ratio
from issue_statuses_bk;
--新库中新增了email_addresses表,是用户和email映射关系表;
--往新库的email_addresses表中插入数据;
首先,把表中created_on, updated_on两个字段默认值设置为current_timestamp;
然后执行sql:
insert into email_addresses (user_id, address)
select id user_id,mail address from users_bk;
--还有一个问题,由于issue_statuses表中缺少is_default字段,自然会在相关的表中去维护和新增这个默认的字段,
有一张表 trackers,表中添加了 default_status_id 字段
可以执行如下语句,给表中 default_status_id 值赋值为1;
update trackers set default_status_id = 1;
=============还有已知道的表字段不一致的,没做任何操作。未发现有异常信息的=================
roles表
旧库中roles表字段:
新库中roles表字段:
未做任何其他操作;
------------------------------------------------------------------------------------------
wiki_redirects表
旧库中wiki_redirects表字段:
新库中wiki_redirects表字段:
该表由于在旧库中并未用到,所以未做操作;
===================================================================
尝试登录,成功;
但是在项目中查看上传的资源等数据都没有;
redmine的文件存储,是按照年份区分,年份里面是按照月份来区分的;
如下是redmine的文件存储路径:
\Bitnami\redmine-4.0.3-1\apps\redmine\htdocs\files
把旧版本中的files文件夹复制到新版本的htdocs文件夹下,覆盖原有files文件夹就可以了;
redmine数据迁移至此就已经完成了。
目前使用未发现有异常, 后面如果发现还有别的坑,会及时更新;