LoginSignup
2
1

More than 3 years have passed since last update.

heroku run rails db:migrateできなかった時の話

Posted at

herokuでデプロイしようとした際、データベースにマイグレーションの情報を入力

% heroku run rails db:migrate

入力、、、なんか違和感を感じる

logを遡っていくと

Mysql2::Error: Table 'heroku_XXXXXXXXXXXXXXXX.users' doesn't exist

 〜省略〜

とエラーが出てる

heroku上のuserテーブルが存在していないってこと?

当然、urlを指定しても画面には

スクリーンショット 2020-11-19 21.51.08.png

と表示される。

データベースのステータス確認

% 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になった。

挙動も正常を確認

疑問点

なぜ、一つづつならマイグレートできたのか分からない

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1