Herokuで強制的にdb:migrateをやり直す方法を調べたのでメモ。
まず、HerokuではRails標準のrake db:resetは使えません。
代わりに、pg:resetコマンドで Herokuの標準のpostgresのDBをリセットすることができます。
$ heroku pg:reset --db SHARED_DATABASE_URL
コマンド実行後、確認のためプロンプトが表示されるので、アプリ名を入力するとリセットが実行されます。
ちなみに、SHARED_DATABASE_URLは以下のコマンドで確認できます。
$ heroku console
Ruby console for codenote.heroku.com
>> ENV['DATABASE_URL']
=> "postgres://username:[email protected]/dbname"
・参考:Heroku | Dev Center | PostgreSQL
他にも、db:migrateをやり直す方法があり、VERSION=0 を指定することで最初にdb:migrateする前の初期状態に戻すことができます。
(最初にdb:migrateしたときのマイグレーションファイルが存在することが前提)
$ heroku rake db:migrate VERSION=0
また、db:migrate:redo で何回か前の状態(STEP=回数)に戻すこともできます。
$ heroku rake db:migrate:redo STEP=10
以上です。
【参考】
・[Rails][Heroku] Herokuで強制的にdb:migrateをやり直す。その2 - mat_akiの日記