如何修复错误的Capistrano部署?

时间:2012-07-26 15:28:25

标签: ruby-on-rails deployment capistrano

昨晚进行了大量更新,我的网站目前已关闭。我用cap deploy:rollback没有运气。错误日志并没有告诉我太多。我在尝试部署时看到的最后一个错误是:

 ** [out :: website.com] You are trying to install in deployment mode after changing
 ** [out :: website.com] your Gemfile. Run `bundle install` elsewhere and add the
 ** [out :: website.com] updated Gemfile.lock to version control.
 ** [out :: website.com] 
 ** [out :: website.com] You have deleted from the Gemfile:
 ** [out :: website.com] * asset_sync
    command finished in 934ms

我的cap tail只是说了以下内容而没有错误:

Migrating to AddSessionsTable (20120722094547)
Migrating to AddSlugToUserProjects (20120723204816)
Migrating to AddSlugIndexToUserProjects (20120723205558)
Migrating to CreateFriendlyIdSlugs (20120723210904)
Migrating to AddNameToUsers (20120723221700)
Migrating to AddSlugToUsers (20120723222456)
Migrating to CreateComments (20120724203252)

任何帮助?

3 个答案:

答案 0 :(得分:0)

在开发服务器上运行bundle install,然后cap deploy。另一种可能的解决方案:将asset_sync添加回您的Gemfile。

最后,您可以运行cap -d deploy。它将逐步运行部署,要求您继续执行每个步骤。在单独的shell中登录到生产服务器,并在手动步骤之间进行一些调整。

答案 1 :(得分:0)

看起来Gemfile的改变并不顺利。如何修复:

  1. 登录到服务器,有6个ruby进程正在处理所有可用的东西。这几乎可以肯定是试图启动的独角兽过程,而不是...... killall -9 ruby
  2. 进入应用程序的当前目录
  3. RAILS_ENV =生产包exec rake资产:预编译
  4. 服务unicorn_whimseybox start
  5. 看起来(在unicorn.log中),错误是: E,[2012-07-26T17:27:10.552912#24818]错误 - :未初始化的常量AssetSync(NameError)

答案 2 :(得分:0)

将一些Gemfile source行转换为块后,我遇到了同样的错误。

该错误是由于生产中的旧版Bundler(1.7.3)与开发时的1.8.3版本所致。