自己解決できました。
問題
Heroku上のマイグレーションファイル
********** NO FILE **********の削除方法
開発環境で不要になったマイグレーションファイルを削除すると
ヘロク上で
例 up 20190915065320 ********** NO FILE ********** となる
これを削除するには一度 up → down にして削除する必要がある
ということなので
まず開発環境上でダミーのマイグレーションファイルを作成する
20190915065320_hoge.rb を作成
中身はこんな感じ
class Hoge < ActiveRecord::Migration[6.0]
def change
end
end
次に git push heroku master でデプロイする
その後各ダミーマイグレーションファイルをdownさせる
heroku run rails db:migrate:down VERSION=20190915065320
downさせたら 作成したダミーのマイグレーションファイルを削除
再度デプロイする
git push heroku master
次に、heroku run rails db:migrate:reset で
データベースをリセットするのだが、下記のエラーが発生
ActiveRecord::ProtectedEnvironmentError: You are attempting to run a destructive action against your 'production' database.
どうやら、productionのDBを破壊するようなコマンドはそのままでは通らないらしい。
DISABLE_DATABASE_ENVIRONMENT_CHECK=1にして実行する。
以下にようにコマンドに続けて環境変数をセットするだけ。
$ heroku run rails db:migrate:reset DISABLE_DATABASE_ENVIRONMENT_CHECK=1
その後、heroku run rails db:migrate:status で確認し
削除したいマイグレーションファイルの表示が消えていたらOK