上篇文章已经讲了如何在Centos6.4下安装Redmine1.0并升级到3.3版本,那么应用的升级完成之后,最重要的步骤,应该就是数据库的迁移了吧,毕竟数据才是整个过程中最重要的。
这一篇,就将数据库的迁移分为两部分来介绍过程,分别是本地升级和异地升级和迁移。
首先讲讲数据库的本地升级吧:
redmine3.3版本升级完毕之后,此时本地的数据库应该是已经初始化为3.3版本的数据库结构了之前这个命令创建的:RAILS_ENV=production bundle exec rake db:migrate
接下来要做的:
第一步.删除3.3版本的redmine数据库,然后再新建数据库
mysql -uroot -p
drop database redmine;
创建数据库redmine和数据库:
create database redmine character set utf8;
然后导入redmine1.0版本的数据库sql文件
mysql -uusername -ppassword databasename < backupfile.sql
username =root,password = 自己设置的密码
第二步:进入redmine3.3目录下,同步数据库结构
RAILS_ENV=production bundle exec rake db:migrate
然后就可以启动redmine了,进入redmine3.3目录下:
ruby bin/rails server webrick -e production
第二种:数据库的异地升级和迁移:
我们把数据库服务器叫服务器A,应用服务器称为服务器B
首先,在服务器A上安装mysql并创建Redmine数据库和redmine用户。
1.第一步:在数据库服务器上安装mysql并创建Redmine数据库和redmine用户。
yum -y install mysql mysql-server
chkconfig mysqld on
service mysqld start
给mysql数据库设置密码:命令:
/usr/bin/mysql_secure_installation
Because we not have a password for the root account so you press Enter to skip.
Enter current password for root (enter for none):
Select Yes to set the password for the MySQL root account.
Set root password? [Y/n] y
Enter and confirm your password, remove the anonymous user, select Yes
Remove anonymous users? [Y/n] y
Allow remote login to MySQL as root account, select No.
Disallow root login remotely? [Y/n] n
Delete the test database, select Yes
Remove test database and access to it? [Y/n] y
Reload privilege tables, select Yes
Reload privilege tables now? [Y/n] y
创建redmine数据库和用户:因为redmine的web服务器和数据库服务器不在同一台机器上,所以使用%代替了localhost
1.mysql -uroot -p #首次mysql的密码为空
2.create database redmine character set utf8;
3.create user 'redmine'@'%' IDENTIFIED BY 'pwd'; #用户名: redmine; 密码:pwd
4.grant all privileges on redmine.* to 'redmine'@'%'; #最大权限
5.flush privileges;
在服务器B上修改database.yml文件:
host改为服务器A的地址。
至此,数据库服务器上产生了redmine的表。
第二步:数据库的导入
在原redmine服务器上xp系统上,关闭redmine服务,以免备份过程中数据不完整
关掉下列服务:
redmineApache
redmineSubversion
redmineThin1
redmineThin2
进入mysql/bin目录下:备份现有的数据库
mysqldump -uusername -ppassword databasename > backupfile.sql
***username =root,password =自己设置的密码
导入到目标数据库服务器:
mysql -hhostname -uusername -ppassword databasename < backupfile.sql
***Hostname=目标服务器A的地址,
***username=redmine,password= pwd;
第三步:
在web服务器下的
redmine目录下执行:
RAILS_ENV=production bundle exec rake db:migrate//创建数据库结构
RAILS_ENV=production bundle exec rake redmine:load_default_data//初始化表结构
将原redmine目录下的file文件拷贝至redmine3.3版本的file文件夹下。
rm -rf /usr/local/redmine3.3/files
mv /files的路径/files /usr/local/redmine3.3/
至此,redmine的数据库异地升级和迁移完成。
小结:先导入数据库.sql文件,再执行RAILS_ENV=production bundle exec rake db:migrate,可实现数据库的结构升级。