前提・実現したいこと
railsを使用してオリジナルのwebサービスを開発しております。
ec2を使って何とかデプロイをしたのですがローカルで制作した
データベースが反映されず困っています。
本番環境にmysqlのデータベースを反映させるにはどうすれば良いでしょうか。
是非助言をお願いします。
これまでに実行したコードは以下の通りです。
(こちらを参照しました。)
# 1. 一旦作ったデータベースを削除する $ RAILS_ENV=production DISABLE_DATABASE_ENVIRONMENT_CHECK=1 bundle exec rake db:drop → Dropped database 'project_production' # 2. 本番環境を指定し、データベースをもう一度作る。 $ rails db:create RAILS_ENV=production → Created database 'project_production' # 3.ローカルで作ったデータを本番環境にも反映させる。 $ rails db:migrate RAILS_ENV=production = 20211201051326 DeviseCreateUsers: migrating ================================ -- create_table(:users) -> 0.0300s -- add_index(:users, :email, {:unique=>true}) -> 0.0304s -- add_index(:users, :reset_password_token, {:unique=>true}) -> 0.0316s == 20211201051326 DeviseCreateUsers: migrated (0.0925s) ======================= == 20211201114525 AddUsernameToUsers: migrating =============================== -- add_column(:users, :username, :string, {:null=>false, :default=>""}) -> 0.0256s == 20211201114525 AddUsernameToUsers: migrated (0.0258s) ====================== ・ ・ ・
上記の手順で問題なくデータが反映されているか確認するためにmysqlにログイン。
データベース一覧をみるとproject_productionデータベースがない。
$ mysql -u root -p mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+
データがきちんと作れていないのかと思いもう一度下記を実行すると、
データベースは既に存在すると返ってくる。
$ bundle exec rake db:create RAILS_ENV=production → Database 'project_production' already exists
データベースはあるがmysqlには反映されていないという状況にどう対処すればよいかわからず
質問しました。
考え方の方向性や見落としていることなど気づいたことがあれば是非教えてください。
よろしくお願いします。
あなたの回答
tips
プレビュー