我想从我创建的新分支部署。在此分支上,db / migrate内容已更改,我删除了一些迁移文件并重新生成了一个新文件。
问题是,当我cap staging deploy
来自此分支时,它在运行迁移PG::DuplicateTable: ERROR: relation "partners" already exists
时失败。
我想在服务器上运行rake db:drop
和rake db:setup
(没有真实数据),但首先我需要在app_name/current/db/migrate
文件夹中更新内容。
我该如何做到这一点?
答案 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
。