首页 > 解决方案 > Rails rake db:migrate 选项不覆盖现有表

问题描述

如果它们具有相同的架构,是否有rake db:migrate防止 rake 覆盖现有表的选项?我还将接受一个选项,该选项可以防止覆盖现有表而不管架构如何。我原以为不覆盖将是默认设置,并且需要一个--force标志才能这样做。

标签: ruby-on-railsrubyruby-on-rails-5rake

解决方案


在迁移中,您可以在执行代码之前检查表或列是否存在:

unless table_exists?(:test)
  # do something
end

unless column_exists?(:test)
  # do something
end

推荐阅读