BitNami Redmine的搬家一年前,尝试过一次,结果以失败告终,不得已,采用新旧机器之间逐条记录拷贝的方法,累得我够呛。
网上有些人建议安装同样的版本,然后使用原有的redmine覆盖新的,这个方法我已经试过了,结论是不可以。那么覆盖部分可不可以呢?答案还是不可以,这个我已经试验过了。
那么什么方法可行了?我们简略的分析一下BitNami Redmin的架构,就有答案了。
redmine其实只是一个采用Rails框架,使用Ruby作为开发语言的web 应用程序。它本身是不可以提供的服务的,需要依托web服务器-apache,数据库-mysql。因此你可以自己安装这些组件,然后再把Redmine部署上去。而BitNami Redmine其实就是一个将这些组件打包成一个安装包,省去了我们很多的步骤。这里插一句,其实你会发现较新的版本,2.3.00,有了另外一个组件-phpMyAdmin,你在安装的时候发现他是可选的,不是必须的。那么像这样的结构你可能都知道,真正的数据都存在数据库中,这里其实就mysql。因此BitNami
Redmin的搬家其实主要是mysql的数据的搬家,不过不是全部,后面会有补充。
关于mysql的搬家部分请参考我的另外一篇博文:
mysql的备份和还原
不过有个问题,在安装的时候我们并没有指定mysql的用户名和密码,只是指定了mysql的监听的端口,那么默认的用户和密码是什么,其实有2个,一个是安装的时候设定的redmine的用户名和密码(这个是管理员的用户和密码),还有一个是mysql的root,用户名就是root,密码和管理员的密码是一样的。
但是这两个用户的权限是区别的,如果你以管理员的身份登录的话,只能看到2个database,information_skema和test;而root是可以看到任何database的
information_skema
test
performance_skema
mysql
bitnami_redmine
而我们真正redmine的数据时存在mysql和bitnami_redmine这2个数据中的,因此我们需要用root这个用户-也就是mysql的超级用户。
接下来备份原有的数据
mysqldump -uroot -p -P3308 mysql>mysql.sql
这里3308是安装BitNami Redmine的设定的mysql的监听端口,根据你自己的设定,做相应的改动。
执行这个命令,你会得到一个错误:
mysqldump: Couldn’t execute ‘SELECT @@GTID_MODE’: Unknown system variable ‘GTID_MODE’
原因就不解释了,直接告诉你解决方法,加上下面的选项,注意s前面是2杠
–-set-gtid-purged=OFF
命令变成:
mysqldump -uroot -p -P3308 –-set-gtid-purged=OFF mysql>mysql.sql
备份完mysql database之后,再备份bitnami_redmine
mysqldump -uroot -p -P3308 –-set-gtid-purged=OFF bitnami_redmine>bitnami_redmine.sql
接下来就是新机器上面还原这些database,
mysql -uroot -p -P3308 mysql<mysql.sql
mysql -uroot -p -P3308 bitnami_redmine<bitnami_redmine.sql
这样database的备份部分就已经完成。
做到这里还没有结束,因为不是所有的数据都别存在数据库中,比如我们上传的文件时存在redmine的文件夹中的。
因此还需要把这个文件夹中的所有文件都要拷贝过去,这个文件是在
apps/redmine/files
这个目录下面。
如果你配置了email信息的话,还需要拷贝config文件。
完
版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.