Ruby on Railsメモ:migrationのスキップの仕方
migrationを書くときに、それ用のSQLを実験的に流しながら少しずつやっていたら、
migrationが出来上がったときには、実験台のデータはmigrationし終わった状態になってしまって、
次にrake db:migrateするときには、今作ったmigrationには走ってほしくないな、という状況になった。
で、railsが勝手に作ってくれるschema_infoという表のバージョン情報を書き換えたらうまくいった。
例えば今version 23で、31までスキップしたかったら、以下のようにすればよいみたいだ。
mysql> select * from schema_info;
-
-
-
-
-
-
-
-
-
- +
-
-
-
-
-
-
-
-
version |
-
-
-
-
-
-
-
-
-
- +
-
-
-
-
-
-
-
-
23 |
-
-
-
-
-
-
-
-
-
- +
-
-
-
-
-
-
-
-
1 row in set (0.00 sec)
mysql> update schema_info set version=31;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from schema_info;
-
-
-
-
-
-
-
-
-
- +
-
-
-
-
-
-
-
-
version |
-
-
-
-
-
-
-
-
-
- +
-
-
-
-
-
-
-
-
31 |
-
-
-
-
-
-
-
-
-
- +
-
-
-
-
-
-
-
-
1 row in set (0.00 sec)