今作っているアプリで、開発環境ではSQLight、本番環境では(Heroku)Postgresを使っています。
既存のデータのカラムの型変更をしようとしてハマってしまいました。
解決した方法としては、PostgreSQL用にはchange_column
ではなくてremove_column
とadd_column
を使ってマイグレーションスクリプトを書くようにするということ。既存のスクリプトを変更してdb:reset
してやり直すことで対処しました。
change_column
を使ったら、db:migrate
ができないというエラーが起きたというのがハマった現象でした。(SQLightではエラーにならなかったので、デプロイしてエラーになってかなり焦った・・・)
調べてみたら同じようにハマった人は結構いるみたいで、データベースの種類が違うためにハマるというのは珍しくないのかも知れないと思いました。
今後型変更の必要がある場合は、スクリプトの書き方を留意しておこうと思います。