<質問背景>
Ruby on Railsで作成したアプリケーションをAWSでデプロイを試みています。EC2とRDS(データベース)を使っています。
ローカル環境はデータベースをSQliteで作成していて、なんの問題もありませんでした。しかし本番環境でMySQLを使用すると、下記エラーが発生しました。
エラーの解消方法をご教示頂けると幸いです!!
<エラー内容>
下記が本番環境でのエラーログです。エラーを読むと「bookers2.users」が存在しないよ!と怒られています。
F, [2020-11-03T02:16:56.718447 #26388] FATAL -- : [38b0940e-09ec-47cd-8005-4d8b36e1a504] F, [2020-11-03T02:16:56.718482 #26388] FATAL -- : [38b0940e-09ec-47cd-8005-4d8b36e1a504] ActiveRecord::StatementInvalid (Mysql2::Error: Table 'bookers2.users' doesn't exist: SHOW FULL FIELDS FROM `users`): F, [2020-11-03T02:16:56.718505 #26388] FATAL -- : [38b0940e-09ec-47cd-8005-4d8b36e1a504] F, [2020-11-03T02:16:56.718544 #26388] FATAL -- : [38b0940e-09ec-47cd-8005-4d8b36e1a504] vendor/bundle/ruby/2.6.0/gems/mysql2-0.5.3/lib/mysql2/client.rb:131:in `_query'
<schemaの状態>
ActiveRecord::Schema.define(version: 2020_11_02_040523) do create_table "books", force: :cascade do |t| t.string "title", null: false t.text "body", null: false t.datetime "created_at", null: false t.datetime "updated_at", null: false t.integer "user_id" t.index ["user_id"], name: "index_books_on_user_id" end create_table "users", force: :cascade do |t| t.string "name", null: false t.string "introduction", null: false t.string "profile_image_id" t.string "encrypted_password", default: "", null: false t.string "reset_password_token" t.datetime "reset_password_sent_at" t.datetime "remember_created_at" t.datetime "created_at", null: false t.datetime "updated_at", null: false t.string "email" t.index ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true end end
<mySQLのデータベース>
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | bookers2 | | innodb | | mysql | | performance_schema | | samplenewdb | | sys | +--------------------+ 7 rows in set (0.00 sec)