HerokuのClearDB(MySQL)でDBのmigrationを戻したい

このエントリーをはてなブックマークに追加

ステージング環境としてherokuを利用している場合、開発の都合などにより 順番が前後して、リリースタイミングが後になるものが先にステージングにデプロイされることがあります。

アプリケーションコードのみの変更であれば、あまり問題にならないのですが、 migrationを含むブランチだった場合、migrationが進んだことによって、前のバージョンのコードが正しく 動作しないといったことも発生してきます。

postgres

残念ながら、herokuではdb:resetがサポートされていません。 なので、標準のPostgreSQLを使用している場合は、次のようにして DBをリセットしてからmigrateをやりなおすことで、DBを再構築することができます。

1
heroku pg:reset DATABASE_URL

mysql

しかし、MySQL(addonのclearDB)を利用している場合、pgコマンドを使うことはできません。 この場合はバージョンを指定してmigrateを実行することで戻すことができます。

1
heroku run rake db:migrate VERSION=20141106224945
comments powered by Disqus