Redmine版本升级之数据库迁移--远没你想的那么复杂

上篇文章已经讲了如何在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,可实现数据库的结构升级。

你可能感兴趣的:(Redmine版本升级之数据库迁移--远没你想的那么复杂)