我尝试使用std
部署我的Rails 4
应用。我在运行Capistrano 3
时收到错误消息(我很草率,抱歉)。有没有办法让Capistrano使用db:migrations
部署应用程序(至少第一次)?
我db:schema:load
的摘录:
deploy.rb
我不确定如何覆盖namespace :deploy do
%w[start stop restart].each do |command|
desc 'Manage Unicorn'
task command do
on roles(:app), in: :sequence, wait: 1 do
execute "/etc/init.d/unicorn_#{fetch(:application)} #{command}"
end
end
end
的默认行为。有人能告诉我如何将其添加到我的脚本中吗?
答案 0 :(得分:1)
在带有Rails 5.1.6应用程序的Capistrano 3.10.1中,
~/Documents/p.rails/perla-uy[staging]$ bundle exec cap staging deploy:updating
给了我足够的shell-in并手动运行db:structure:load
或db:schema:load
任务。在与主机的安全shell会话中,切换到新创建的版本目录并:
dclo@localhost:~/perla-uy/releases/20180412133715$ bundle install --without development test --deployment
dclo@localhost:~/perla-uy/releases/20180412133715$ bundle exec rails db:schema:load
对已尝试deploy:migrate
的(成功或失败)部署进行攻击并不完全相同。
注意:我通过shell登录设置了RAILS_ENV=production
和RAILS_MASTER_KEY=...
。
答案 1 :(得分:0)
对于第一次部署,我通常通过登录到服务器,cd
进入发布目录(此时将部署代码),然后手动运行RAILS_ENV=yourenv bundle exec rake db:setup
来解决它