🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Amazon RDS

Amazon RDSは、米アマゾン社が提供しているRDBMSサービス。クラウド上でのリレーショナルデータベースの構築および運用が可能です。MySQL/PostgreSQL/Oracle/SQL Serverのインストールを容易にすることができます。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Q&A

解決済

2回答

343閲覧

Nginx + Puma + Rails + RDSでのproduction化

lyzmfeqpxs54

総合スコア237

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Amazon RDS

Amazon RDSは、米アマゾン社が提供しているRDBMSサービス。クラウド上でのリレーショナルデータベースの構築および運用が可能です。MySQL/PostgreSQL/Oracle/SQL Serverのインストールを容易にすることができます。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

0グッド

1クリップ

投稿2019/12/19 03:45

編集2019/12/19 03:58

いつもお世話になっております。

今まではPuma + Rails 環境で、データベースはSqliteを使った開発のみ行っていたため
production化の際には下記コマンドにてmigrationを実行していました。

$ bundle exec rake db:migrate RAILS_ENV=production

今回は初めてRDSと連携を行ったのですが、上記コマンドを打っても特に反応はありません。
初歩的な質問で大変恐縮なのですが、RDSの場合、productoin化するためにはどういった処理が必要なのでしょうか。

sqliteでの開発の際はrails c productionでコンソールに入った場合に、User.allなどのコマンドを打つと、データが空になっており、developmentとproductionでデータベースが違っていることがわかるのですが、現状のようにRDSを用いている状態でrails c productionでコンソールに入りUser.allなどのコマンドを打っても、developmentと同じものが出てきます(データベースのprdodutionの概念がいまいち分かっておりません)。

参考になるサイトでも構いませんのでご教示いただけますと幸いです。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

production環境でのdb:migrateコマンドに変化が見られないため、現状、RDSでのproduction、developmentはデータベース上同等とみて一旦クローズしたいと思います。

投稿2020/03/23 02:08

lyzmfeqpxs54

総合スコア237

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Gemfileとdatabase.ymlの修正が多分必要でs。

Gemfile
RDSのエンジンは何ですか? MySQLとかPostgresqlとか、それに応じて
https://railstutorial.jp/chapters/beginning?version=5.1#sec-heroku_setup の リスト 1.13: 辺りを参考にGemfileを修正してください。

database.yml
productionの adapter:をdatabaseエンジンに合わせて設定
host は RDSのエンドポイント
username, password はRDSに登録したもの

で試してください

投稿2019/12/20 06:36

winterboum

総合スコア23567

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

lyzmfeqpxs54

2019/12/21 14:41

ご回答ありがとうございます。 環境はAWSでMySQLを使用しております。 database.ymlもdevelopment状態で接続できるように設定してあり、rails cのコンソールでUser.create(name: "yamada")などを打つことで、AWS上のRDSにデータが挿入される状態にはなっております。 現状、productionにも同じような設定をしているのですが、ここは変更する必要はありますでしょうか。 外部のデータベースを使用している場合、productionとdevelopmentでは同じものを見るのが正しいような気がしてきまして。そもそもSqliteでproductionとdevelopmentのデータベースの内容が違うのはRailsが勝手にやっているようなイメージでしょうか。 不勉強で申し訳ないのですが、ご教示いただけますと幸いです。
winterboum

2019/12/21 20:50

ですとdatabase.ymlの問題ではないですねん bundle exec rake db:migrate RAILS_ENV=production ではなく RAILS_ENV=production bundle exec rake db:migrate で
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問