Skip to content

Upgrade

lanejianzhang edited this page Feb 18, 2013 · 7 revisions

升级网站

升级网站就是让你的网站用mystory最新的源代码,而你之前作的改动仍然保留,比如config/config.yml等文件的改动。

升级前准备工作

备份数据库

$ sudo -u postgres pg_dump -Fc mystory_production > 20130218

备份源代码

$ cp -rf mystory 20130218

升级方法一,用git升级,这是最好的办法。

$ cd mystory
$ git pull origin master

这时候你很可能会遇到如下报错:

... error: Your local changes to 'Gemfile.lock' would be overwritten by merge. Aborting.

Please, commit your changes or stash them before you can merge.

有两种办法解决这个报错,解决办法一:

$ git checkout -- Gemfile.lock

解决办法二:

$ git add Gemfile.lock
$ git commit -m 'Write something here'

再试试:

$ git pull origin master

你会发现成功了。如果Gemfile被改动了,需要你执行

$ bundle install

你也可以每次升级都执行$ bundle install

如果db/migrate/下有新的文件,需要你执行

$ rake db:migrate RAILS_ENV=production

你也可以每次升级都执行$ rake db:migrate RAILS_ENV=production

这时你可以重启Web(以配置了Nginx的Server为例,如果不清楚,请参考启用Nginx):

$ ps -ef|grep unicorn
$ kill -9 25001(25001只是一个例子,它对应的是'unicorn master -c config/unicorn.rb -E production -D'进程的ID)
$ bootup_unicorn -c config/unicorn.rb -E production -D

现在网站可以访问了。

升级方法二,手动升级。适合对git不熟悉的用户(不建议使用,尤其是在有较多文件被你修改了的情况下)

$ rm -rf mystory
$ git clone [email protected]:gazeldx/mystory

手工将发动的所有文件copy到mystory目录中,然后重启Web。