Ruby on Rails+OracleでMigration時に「ORA-00972」エラー

OracleにMigration中、以下のエラーが発生

Migrationファイル
  def self.up
    add_index :hogehoge_groups, :hogehoge_id
  end

  def self.down
    remove_index :hogehoge_groups
  end
エラー
ORA-00972: 識別子が長すぎます。: DROP INDEX index_hogehoge_groups_on_hogehoge_id


何かと思い調べてみると、Oracleはテーブル名、カラム名などに30文字以上を設定することは出来ないらしい。(設定で変更できるかもしれないけど)
add_indexではデフォルトで「index_テーブル名+_on_+カラム名」で自動命名されてしまうのでこの制限に引っかかった。


以下のようにインデックスを別命名することで回避。

  def self.up
    add_index :hogehoge_groups, :hogehoge_id, :name => "index_hg_on_hogehoge_id"
  end

  def self.down
    remove_index :hogehoge_groups, :name => "index_hg_on_hogehoge_id"
  end