【问题标题】:Rails rake db:migrate option to not overwrite existing tablesRails rake db:migrate 选项不覆盖现有表
【发布时间】:2019-03-21 12:29:38
【问题描述】:

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

【问题讨论】:

  • 我很确定 Rails 只会生成 CREATE TABLE 语句,并且当表已经存在时数据库会引发错误。您能否详细说明并发布一个 Rails 迁移会覆盖现有表的示例?

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


【解决方案1】:

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

unless table_exists?(:test)
  # do something
end

unless column_exists?(:test)
  # do something
end

【讨论】:

    猜你喜欢
    • 2016-11-19
    • 1970-01-01
    • 2020-01-26
    • 2011-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-30
    • 1970-01-01
    相关资源
    最近更新 更多