Capistrano Rails使用新的迁移文件进行部署

时间:2015-06-10 10:37:19

标签: ruby-on-rails ruby-on-rails-4 deployment capistrano

我想从我创建的新分支部署。在此分支上,db / migrate内容已更改,我删除了一些迁移文件并重新生成了一个新文件。

问题是,当我cap staging deploy来自此分支时,它在运行迁移PG::DuplicateTable: ERROR: relation "partners" already exists时失败。

我想在服务器上运行rake db:droprake db:setup(没有真实数据),但首先我需要在app_name/current/db/migrate文件夹中更新内容。

我该如何做到这一点?

2 个答案:

答案 0 :(得分:0)

您可以通过添加

覆盖config/deploy.rb中的上限数据库:迁移
namespace :deploy do
  desc "No ActiveRecord override"
  task :migrate do
  end
end

这种方式在部署时不会运行迁移,然后您可以转到服务器并运行rake任务以删除和重置数据库。

注意:不建议您编辑,删除任何迁移文件。如果要编辑任何列或表,只需创建新的迁移。

答案 1 :(得分:0)

我最终从我的Capfile中禁用require 'capistrano/rails/migrations'并从服务器运行rake db:drop rake db:setup