ねこものがたり

いちにちいっぽ

Heroku Postgresで型変更をしようとしてハマった

今作っているアプリで、開発環境ではSQLight、本番環境では(Heroku)Postgresを使っています。

既存のデータのカラムの型変更をしようとしてハマってしまいました。

解決した方法としては、PostgreSQL用にはchange_columnではなくてremove_columnadd_columnを使ってマイグレーションスクリプトを書くようにするということ。既存のスクリプトを変更してdb:resetしてやり直すことで対処しました。

change_columnを使ったら、db:migrateができないというエラーが起きたというのがハマった現象でした。(SQLightではエラーにならなかったので、デプロイしてエラーになってかなり焦った・・・)

調べてみたら同じようにハマった人は結構いるみたいで、データベースの種類が違うためにハマるというのは珍しくないのかも知れないと思いました。

今後型変更の必要がある場合は、スクリプトの書き方を留意しておこうと思います。