※抜本的な解決方法ではないと思うので悪しからず。
Add_columnしたく、migrationをかけたら、以下のようなエラーが発生しました。
== CreateHoge: migrating ============================================
-- create_table(:hoge)
rake aborted!
An error has occurred, all later migrations canceled:
Mysql2::Error: Table 'hoge' already exists: CREATE TABLE `hoge` (`id` int(11) DEFAULT NULL auto_increment PRIMARY KEY, `hoge_id` int(11), `date` date, `created_at` datetime NOT NULL, `updated_at` datetime NOT NULL) ENGINE=InnoDB
ようは、migrationするときに、hogeテーブルを作成しようしたのだが、既にhogeテーブルあるよ!って起こられてるみたいです。
おそらく、hogeテーブルをmigrationかけずに作成してしまったのか?
よく原因が分からず、rollbackしてもdropされず。。。
やむを得ず、コンソール上で直接ActiveRecord::Migration.drop_table(:hoge)
を叩いて、hogeテーブルを削除。
そして、Migrationかけると、、、
== CreateHoge: migrating ============================================
-- create_table(:Hoge)
-> 0.2134s
== CreateHoge: migrated (0.2137s) ===================================
== AddHugaToHoge: migrating ===========================
-- add_column(:hoge, :huga, :integer)
-> 0.1057s
== AddHugaToHoge: migrated (0.1058s) ==================
問題なくMigration出来ました。
※やる前はちゃんとバックアップをとって置きましょう。
・テーブルごとにバックアップをとるコマンド
mysqldump -u ユーザー名 -p -t データベース名 テーブル1 テーブル2 ... > ダンプファイル名
・復元するコマンド
mysql -u ユーザ名 -p データベース名 < ダンプファイル名