【发布时间】:2015-09-04 15:57:39
【问题描述】:
我一直在使用 Capistrano 部署我的最新项目。我有一个相当简单的设置,只有一个生产阶段(它创建了一个暂存阶段,但我不使用它)。
我已经厌倦了键入 cap production deploy 来部署我的应用程序。我真的很喜欢 Rails 处理这个问题的方式,rails c p 与rails console production 相同。我希望能够输入以下内容:
cap p deploy
而不是更长的production 版本。
我尝试过创建一个简单的别名:
ln production.rb p.rb
运行 cap p deploy 几乎完成所有部署步骤,然后在运行 Rake 迁移时死掉:
INFO [03d68697] Running ~/.rvm/bin/rvm 2.2.2 do bundle exec rake db:migrate as ubuntu@mydomain.com
DEBUG [03d68697] Command: cd /var/railsapps/metasmoke/releases/20150904155532 && ( RAILS_ENV=p ~/.rvm/bin/rvm 2.2.2 do bundle exec rake db:migrate )
DEBUG [03d68697] Please require the stackprof gem falling back to fast_stack
DEBUG [03d68697]
DEBUG [03d68697] config.eager_load is set to nil. Please update your config/environments/*.rb files accordingly:
DEBUG [03d68697]
DEBUG [03d68697] * development - set it to false
DEBUG [03d68697] * test - set it to false (unless you use a tool that preloads your test environment)
DEBUG [03d68697] * production - set it to true
DEBUG [03d68697]
DEBUG [03d68697] rake aborted!
DEBUG [03d68697] ActiveRecord::AdapterNotSpecified: 'p' database is not configured. Available: ["default", "development", "test", "production"]
DEBUG [03d68697] /var/railsapps/metasmoke/shared/bundle/ruby/2.2.0/gems/activerecord-4.2.3/lib/active_record/connection_adapters/connection_specification.rb:248:in `resolve_symbol_connection'
我该怎么做?
【问题讨论】:
-
Cap 将参数作为生产或登台或任何其他阶段。查看日志,rails 正在尝试查找未定义的 p 的数据库设置。也许您可以为 p 创建一个数据库设置,这可能会起作用,但我不确定。
-
作为一个兴趣点,您的 ln 命令正在执行硬链接而不是软链接。后者可能更可取。此外,我倾向于只使用 prod 作为部署名称,因为它足够短以便快速键入,并且足够长以明确含义。祝你好运!
-
@will_in_wi 感谢您的提示!
标签: ruby-on-rails capistrano capistrano3