【发布时间】:2016-11-15 10:41:46
【问题描述】:
我在我的应用程序中使用capistrano rails gem。当我运行cap production deploy 时,它会部署我的更改,同时它会运行我的db:migrate 并运行我所有的待定迁移。
出于测试原因,我不希望它在部署后运行db:migrate。
如何防止capistrano 在部署时运行deploy:migrate,更重要的是如何查看我的迁移状态 以查看我的所有待处理迁移 capistrano会跑。
对于开发 ENV 中的实例,我可以运行 rake db:migrate:status,它会告诉我哪些迁移是 up 或 down,哪些迁移将/需要运行。
我的deploy.rb中只有namespace/function
namespace :deploy do
after :restart, :clear_cache do
on roles(:web), in: :groups, limit: 3, wait: 10 do
end
end
desc "reload the database with seed data"
task :seed do
puts "\n=== Seeding Database ===\n"
on primary :db do
within current_path do
with rails_env: fetch(:stage) do
execute :rake, 'db:seed'
end
end
end
end
end
我的deploy.rb 的其余部分具有所有常见的东西,例如:
set :application、set :repo_url、set :passenger_restart_with_touch、set :deploy_to、set :bundle_binstubs、set :linked_files、set :linked_dirs
我的版本:
Rails: 4.2.4
Capistrano: 3.5
【问题讨论】:
标签: ruby-on-rails-4 deployment migration database-migration capistrano3