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

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

作者: 静候轮回silly | 来源:发表于2016-08-24 17:30 被阅读0次

    上篇文章已经讲了如何在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版本升级之数据库迁移--远没你想的那么复杂

          本文链接:https://www.haomeiwen.com/subject/wnlosttx.html