`

BitNami的Redmine更新步骤

阅读更多

官方原文:

1.How to upgrade the full Stack migrating the data?

2.How to upgrade Redmine?

3.Redmine官方更新说明

 

 

具体步骤:

1.下载新版本的安装程序(以下命令中的installdir均指bitnami redmine安装的目录)

 

2.将redmine服务停止

 

./installdir/ctlscript.sh stop

 

3.只启动redmine的mysql服务

 

./installdir/mysql/scripts/ctl.sh start

 

4.找到installdir/apps/redmine/config/database.yml文件,并记下其中production部分的信息,这里包含了你的redmine使用的数据库,用户名及密码。如果有需要,可以把其他几部分的数据库信息也记下来

 

5.执行如下命令

 

./installdir/mysql/bin/mysqldump -u username -p -S installdir/mysql/tmp/mysql.sock application_database > backup.sql

 

 其中的username和application_database(默认bitnami_redmine)分别为之前记录下来的数据库名及用户名,执行后会提示输入密码,将之前记录的密码输入后,命令即会执行

 

6.停止mysql服务

 

./installdir/mysql/scripts/ctl.sh stop
 

 

7.安装新版本的安装程序在新的路径,必须与原版本的区分,如原来安装在redmine-1.2.1-1,新的安装在redmine-1.3.0-1,或将原来的备份后移除,将新的安装在原来的位置(安装完后提示是否要启动的时候选择No)

 

8.将原来的配置文件 config/configuration.yml 复制到新程序的对应位置覆盖(如果更新前的版本早于1.2.0,则将原来config/email.yml中的内容自己配置到新的config/configuration.yml文件中)

 

cp redmine-old/apps/redmine/config/configuration.yml installdir/apps/redmine/config/
 

 

9.复制上传附件到新的位置

 

cp redmine_old/apps/redmine/files/* installdir/apps/redmine/files/
 

10.将之前备份的sql脚本还原到新的数据库

 

./installdir/mysql/bin/mysql -u username -p -S installdir/mysql/tmp/mysql.sock application_database < backup.sql

 注意,这里的密码要到新安装的database.yml中找

 

11.执行数据库的更新操作(这步可能会遇到些麻烦)

 

 首先将目录切换到installdir/apps/redmine

 

cd installdir/apps/redmine

 

然后执行更新数据库的命令操作

 

./installdir/ruby/bin/rake db:migrate RAILS_ENV=production
 

注意:在这步数据库更新的操作中,我遇到过如下的几个问题,这里将经验分享下

首先遇到提示

 

Some gems may need to be installed or updated.
Please run `bundle install --without development test`.

 

由于我们使用的是Bitnami打包的程序,所以这里所有提示的命令其实安装包中都已经提供,千万不要直接执行bundle install --without development test命令

这是Redmine提供的帮助提示,但我们用bitnami redmine,使用的是mysql,所以应该这样执行命令

 

./installdir/ruby/bin/bundle install --without development test postgresql sqlite
 

看到提示Your bundle is complete!表示命令成功执行。这之后重新执行一次更新数据库的命令即可

 

另外,在执行更新命令中遇到提示

 

==  CreateChangesetParents: migrating =========================================
-- create_table(:changeset_parents, {:id=>false})
rake aborted!
An error has occurred, all later migrations canceled:

Mysql::Error: Table 'changeset_parents' already exists: CREATE TABLE `changeset_parents` (`changeset_id` int(11) NOT NULL, `parent_id` int(11) NOT NULL) ENGINE=InnoDB

Tasks: TOP => db:migrate
(See full trace by running task with --trace)

不知道怎么回事,可能是之前摸索的时候,创建过表了,但别的表创建没有这样的问题,也可能是这个更新方法写的有问题,没有判断表是否创建

然后只能去把创建这个表的脚本文件删除,过程如下:

 

#以下命令均在installdir/apps/redmine路径下执行
ls db/migrate/*changeset_parents*
#显示结果db/migrate/20110902000000_create_changeset_parents.rb,显然这正式我们要找的创建脚本
#根据显示结果执行删除
rm db/migrate/20110902000000_create_changeset_parents.rb

 

最后重新执行数据库更新命令即可。遇到类似问题,可以使用相同的方法来解决该问题

 

 

最后,完成后启动即可使用,这里略过了一些SVN的更新动作,具体可以根据官方文档自行操作

 

 

 

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics