herokuでデプロイしようとした際、データベースにマイグレーションの情報を入力
% heroku run rails db:migrate
入力、、、なんか違和感を感じる
logを遡っていくと
Mysql2::Error: Table 'heroku_XXXXXXXXXXXXXXXX.users' doesn't exist
〜省略〜
とエラーが出てる
heroku上のuserテーブルが存在していないってこと?
当然、urlを指定しても画面には
と表示される。
データベースのステータス確認
% heroku run rails db:migrate:status
↓
Status Migration ID Migration Name
--------------------------------------------------
(2.2ms) SELECT `schema_migrations`.`version` FROM `schema_migrations` ORDER BY `schema_migrations`.`version` ASC
down 202010XXXXXXXX Create posts
down 202010XXXXXXXX Create active storage tablesactive storage
down 202010XXXXXXXX Devise create users
down 202010XXXXXXXX Create comments
down 202011XXXXXXXX Add columns to users
全ファイルupされてない。。。
試したこと
ローカルリポジトリでは問題なく反映されていたものの、一度こちらをリセットしてみようと試みる。
% rails db:migrate:reset
すると
Mysql2::Error: Table 'power_spot_development.users' doesn't exist
〜省略〜
えー
ローカルでもエラー発生
herokuでの状況と全く一緒で全ファイルがdown
マイグレイトできない
解決策
rails db:migrate:up VERSION=Migration ID
で一つづつファイルupしてみた。
すると
Status Migration ID Migration Name
--------------------------------------------------
up 20201021042500 Create posts
up 20201023030611 Create active storage tablesactive storage
up 20201023054938 Devise create users
up 20201030032407 Create comments
up 20201101015416 Add columns to users
全部マイグレーションできた!
herokuの方でも同じ動作を行う
heroku run rails db:migrate:up VERSION=Migration ID
全部upになった。
挙動も正常を確認
疑問点
なぜ、一つづつならマイグレートできたのか分からない