記事タイトルのエラーメッセージは、PostgreSQLの場合ですが、mysqlでも同様のエラーは起こりうると思います。
「テーブル名は63文字以内なのに!」
と言った場合に起きますが、テーブル名をリネームした結果、インデックス名が63文字を超えてしまう場合等に起きるようです。
~/.rvm/gems/ruby-2.0.0-p353/gems/activerecord-4.0.3/lib/active_record/connection_adapters/postgresql/schema_statements.rb:426:in `rename_index'
~/.rvm/gems/ruby-2.0.0-p353/gems/activerecord-4.0.3/lib/active_record/connection_adapters/abstract/schema_statements.rb:850:in `block in rename_table_indexes'
~/.rvm/gems/ruby-2.0.0-p353/gems/activerecord-4.0.3/lib/active_record/connection_adapters/abstract/schema_statements.rb:847:in `each'
~/.rvm/gems/ruby-2.0.0-p353/gems/activerecord-4.0.3/lib/active_record/connection_adapters/abstract/schema_statements.rb:847:in `rename_table_indexes'
こんな感じ。
テーブル名を変更する前に、インデックス名を63文字以内に収まるようにリネームしてあげると解決するみたいなので、そうしてあげましょう
class RenameTable < ActiveRecord::Migration
def change
rename_index :table, :index_table_aaaaaa_id_and_bbbbbb_id_and_ccccccc_id, :index_table_columns
rename_table :table, :long_long_long_table_name
end
end