6

cap deploy:cold使用 Capistrano时如何禁用 db:migrate ?

在 config/deploy.rb 中,唯一的引用deploy:migrate被注释掉了,但它仍在尝试这样做:

bundle exec rake RAILS_ENV=production  db:migrate
4

3 回答 3

4

我通过deploy:migrate在我的config/deploy.rb.

namespace :deploy do
  desc "No ActiveRecord override"
  task :migrate do
  end
end
于 2014-06-22T01:26:15.403 回答
2

在 Capistrano v2 中重新定义任务时,替换了原始任务。然而,构建 Capistrano v3 的 Rake DSL 是附加的。根据文档。在大多数情况下,您只需要使用 clear_actions,它会删除指定任务的行为,但不会更改其依赖项或注释:

namespace :deploy do
  Rake::Task["migrate"].clear_actions
  task :migrate do
    puts "no migration"
  end
end
于 2018-03-11T12:44:08.607 回答
0

我有同样的问题。这就是我在 Rakefile 中覆盖它的原因。像这样:

namespace :db do

  desc "db:migration fakes"
  task :migrate => :environment do
    p 'No. We will not migrate!'
  end

end

如果您愿意,您可以在此处添加更多逻辑。例如,您可以在某些环境中触发真正的迁移。

于 2014-04-05T09:37:11.117 回答