#参考対象者
- チーム開発初心者
- Railsでのアプリ開発にて、データベース関連のエラーで困ってる方
- Git初心者
#環境
$ rails -v
Rails 6.0.3.1
$ ruby -v
ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-darwin19]
$ git --version
git version 2.27.0
$ mysql --version
mysql Ver 14.14 Distrib 5.7.29, for osx10.15 (x86_64) using EditLine wrapper
#状況
- 他メンバーのブランチに移動し、レビューするために挙動確認したかったが、サーバーを立ち上げるときにエラーが出た。
- どうやら、データベース関連のエラーらしい。
#ActiveRecord::PendingMigrationError
上記を参考に、解決する。
ちなみに私は、
$ rails db:migrate
で解決。
でも、その後次のようなエラーが。。。
#Multiple migrations have the name ~~~.
結論から言うと、~~~には、マイグレーションファイル名が入ります。
私の場合は、
Multiple migrations have the name CreateUsers.
となって、自分のマイグレーションファイルを確認してみると、
$ rails db:migrate:status
Status Migration ID Migration Name
--------------------------------------------------
up 20200618162841 Create tweetposts
up 20200620004226 Change tweetposts to tweets
down 20200621075518 Create posts
down 20200623102444 Change posts to chats
down 20200627042358 Create users
up 20200627080839 Create users
up 20200627083356 Add column to users
down 20200627220915 Change datatype content of chats
up 20200703201452 ********** NO FILE **********
down 20200710035709 Add user id to tweets
ありましたね、CreateUsersファイル。
察しの良い方はお分かりだと思いますが、エラー文の内容から「同名のマイグレーションファイルか存在しているから、どちらを参考にデータベース構築をしたら良いかわからないよ」という状況と推測できます。
なので、
down 20200627042358 Create users
こちらのファイルを削除し、
$ rails db:migrate
$ bundle exec rails s
これにて、サーバーを起動することができました!
#ちなみに、、、
マイグレーションファイルの、
up 20200703201452 ********** NO FILE **********
気になりますよね??
これ、ないファイルを参考にデータベースを構築してるという不可思議な現象なので、削除してしまいたいですね。
これの原因は、マイグレーションをdownさせる前に、マイグレーションファイルを削除してしまったため起こるものなのですが、解決方法は下記をどうぞ。