ruby-on-rails - ActiveRecord 如何忽略挂起的迁移

标签 ruby-on-rails ruby activerecord

问题如下:

  • 我有包含初始数据的 db/seed.rb。
  • 其中一个迁移取决于该种子提供的数据。
  • 我正在尝试从空数据库部署我的应用程序。

结果是:

  • RAILS_ENV=production rake db:migrate - 由于缺少初始数据而失败
  • RAILS_ENV=production rake db:seed - 由于未决迁移而失败

我想以某种方式告诉 rake 忽略挂起的迁移,但到目前为止无法做到。

更新(由于额外的经验)

有时迁移和模型代码不同步,因此迁移不会运行。 为了避免这个问题,最近在迁移中使用了模型的重新定义:

# reset all callbacks, hooks, etc for this model
class MyAwesomeModel < ActiveRecord::Base
end

class DoSomethingCool < ActiveRecord::Migration
  def change
    ...
  end
end

最佳答案

我不太确定这是否对您有帮助。但是我正在寻找一些东西并发现了这个问题。所以看起来这可能会有所帮助:

在 RAILS_ROOT/config/environments/development.rb 将以下设置设置为 false:

 # NOTE: original version is `:page_load`
 config.active_record.migration_error = false

在我的情况下,它现在不再显示挂起的迁移错误。应该也适用于相同环境的 rake 任务和控制台。

Source in rails/rails

关于ruby-on-rails - ActiveRecord 如何忽略挂起的迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20244244/

相关文章:

ruby-on-rails - has_many 关联不尊重自定义变形器

ruby-on-rails - 使用 Rails 提交和推送 Git 存储库

javascript - 如何在 ruby​​ on Rails 中将文本值迭代为 Active Record 模型名称格式?

ruby-on-rails - 使用 Whenever 执行 cron.job 时 bundle 出错

ruby - 如何在 Ruby 中找到字符串中字符的索引?

ruby - 当搜索为空时如何在Linux中查找程序

ruby-on-rails - 无法使用 activerecord-postgis-adapter 添加 st_point 列

mysql - 使用 Active Record 在 CodeIgniter 中的查询中的 DATE_FORMAT 不起作用

ruby-on-rails - 架构arm64构建nokogiri-xmlsec-instruct的 undefined symbol Ruby gem

ruby-on-rails - 事件记录 postgres 检查 jsonb 数组是否包含 x 或 y