首页 > 解决方案 > 对于 Rails,使用手写迁移创建“ar_internal_metadata”表是个好主意吗?

问题描述

当我运行迁移时,'ar_internal_metadata' 表不断被从架构中剥离。

  create_table 'ar_internal_metadata', primary_key: 'key', force: :cascade do |t|
    t.datetime 'created_at', null: false
    t.datetime 'updated_at', null: false
    t.string 'value'
  end

如果我要通过手动迁移创建“ar_internal_metadata”,它会正常工作还是会导致问题?

标签: rubydatabase-migrationruby-on-rails-5.1

解决方案


不断被从架构中剥离。

这是预期的行为

  # activerecord/lib/active_record/schema_dumper.rb
  def ignored?(table_name)
    [ActiveRecord::Base.schema_migrations_table_name, ActiveRecord::Base.internal_metadata_table_name, ignore_tables].flatten.any? do |ignored|
      ignored === remove_prefix_and_suffix(table_name)
    end
  end

推荐阅读