諸行無常

IT色々お勉強中のブログ

rails db index名長すぎて怒られる

  • index名長すぎて怒れれたので以下のようにnameを指定してみる
  def change
    create_table :pogehoge_members_permissions do |t|
      t.references :pogehoge_member, index: true, foreign_key: true
      t.references :pogehoge_member_permission, index: true, name: 'index_om_permissions_on_om_permission_id', foreign_key: true

      t.timestamps null: false
    end
  end
  • んっ、まだ怒られる↓
ArgumentError: Index name 'index_pogehoge_members_permissions_on_pogehoge_member_permission_id' on table 'pogehoge_members_permissions' is too long; the limit is 63 characters
  • hashに入れて指定したら怒られないのね、、
  def change
    create_table :pogehoge_members_permissions do |t|
      t.references :pogehoge_member, index: true, foreign_key: true
      t.references :pogehoge_member_permission, index: { name: 'index_om_permissions_on_om_permission_id' }, foreign_key: true

      t.timestamps null: false
    end
  end

rails/schema_definitions.rb at 4-2-stable · rails/rails · GitHub