Rails:如何使用Capistrano设置db:schema:load进行初始部署

时间:2016-03-06 00:51:00

标签: ruby-on-rails-4 capistrano3

我尝试使用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 的默认行为。有人能告诉我如何将其添加到我的脚本中吗?

2 个答案:

答案 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:loaddb: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=productionRAILS_MASTER_KEY=...

答案 1 :(得分:0)

对于第一次部署,我通常通过登录到服务器,cd进入发布目录(此时将部署代码),然后手动运行RAILS_ENV=yourenv bundle exec rake db:setup来解决它