Rails:如何设置 db:schema:load 以使用 Capistrano 进行初始部署
Rails: How to set up db:schema:load for initial deploy with Capistrano
我正在尝试使用 Capistrano 3
部署我的 Rails 4
应用程序。我在 运行 和 db:migrations
中收到错误消息(我很草率,抱歉)。有没有办法让 Capistrano 使用 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
我不确定如何覆盖 Capistrano 3
的默认行为。谁能告诉我如何将它添加到我的脚本中?
对于第一次部署,我通常通过登录服务器,cd
进入发布目录(此时将有部署的代码),然后手动 运行 RAILS_ENV=yourenv bundle exec rake db:setup
.
在带有 Rails 5.1.6 应用程序的 Capistrano 3.10.1 中,
~/Documents/p.rails/perla-uy[staging]$ bundle exec cap staging deploy:updating
足以让我手动 shell 和 运行 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=...
。
我正在尝试使用 Capistrano 3
部署我的 Rails 4
应用程序。我在 运行 和 db:migrations
中收到错误消息(我很草率,抱歉)。有没有办法让 Capistrano 使用 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
我不确定如何覆盖 Capistrano 3
的默认行为。谁能告诉我如何将它添加到我的脚本中?
对于第一次部署,我通常通过登录服务器,cd
进入发布目录(此时将有部署的代码),然后手动 运行 RAILS_ENV=yourenv bundle exec rake db:setup
.
在带有 Rails 5.1.6 应用程序的 Capistrano 3.10.1 中,
~/Documents/p.rails/perla-uy[staging]$ bundle exec cap staging deploy:updating
足以让我手动 shell 和 运行 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=...
。