質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby on Rails

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

Q&A

解決済

2回答

2144閲覧

【Ruby on Rails】database.ymlにてDBを切り替えるメリットや活用法について教えてください

pecchan

総合スコア555

Ruby on Rails

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

0グッド

0クリップ

投稿2017/06/16 01:18

いつもお世話になっております。
初めてRuby on Railsで開発し、
こちらのおかげで間もなく本稼働になります。

運用後の保守に関して、「database.yml」がどうしても理解できずにいます。

database.ymlにて、development(開発用)、test(テスト用)、production(本番用)が用意されていますが、このうち開発用と本番用を切り替えるメリットがどうしても分かりません。

テストを行う目的のtestはまだ分かります。

例えば運用が始まり、
プログラムの修正が必要になったとします。

まず、サーバからデータベースのコピーをローカルの開発環境に持ってきてから
修正作業を始めると思います。※同じ環境にする必要がある場合

上記の時点でローカル(開発)=本番になります。

わざわざここで指定(切り替え)することがあるのでしょうか?
ファイル操作(データベースファイルのコピぺ)で済む話と思うのですが・・。

何か勘違いしてましたらご指摘いただけると幸いです。

Railsでの運用経験がなく、この辺りの運用方法、
活用方法など色々とご意見いただけると有難いです。

宜しくお願い致します。

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

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

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

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

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

guest

回答2

0

たとえば、「開発はローカルのLinuxで、本番反映はサーバ上」とか「開発と本番で別にサーバを立ててある(もちろん、DBサーバの接続状況から違う)」という場合には、そもそも接続情報を共有することができません。

なお、「データベースファイルのコピぺ」とありますが、本番でSQLiteを使うのはあまりおすすめしませんし、開発と本番でDBエンジンが違うのもトラブルのもとですので、開発環境でも本番で使うDBエンジン(MySQL、PostgreSQLなど)に合わせることをおすすめします。

投稿2017/06/16 01:30

編集2017/06/16 01:56
maisumakun

総合スコア145121

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

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

pecchan

2017/06/16 02:56

有難う御座います。 はい。MySQLでの運用になります。
maisumakun

2017/06/16 03:18

となればなおのこと、「ファイルのコピペ」なんて乱暴な方法で開発DBを用意する気にはなりません。
pecchan

2017/06/16 03:32

語弊がある言い方でした。すみません。 インポート・エクスポート含む、要はファイル操作による物理的なDBの同期を言いたかったんです。
guest

0

ベストアンサー

開発中にデータの登録や削除、変更などした場合、それが本番に反映されたら大変だからでは。

投稿2017/06/16 01:21

編集2017/06/16 01:22
mbk

総合スコア130

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

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

moke

2017/06/16 01:42

mbk様の言う通りなんですが、一応補足としましては。 本稼働のサーバーでメインを動かしたまま 別スタックで簡単に開発用を動かせるから といっておきましょうか。
pecchan

2017/06/16 01:49

moke様 >本稼働のサーバーでメインを動かしたまま別スタックで簡単に開発用を動かせるから こちらは、「本番環境で開発用DBを動かす」という理解で良かったでしょうか?
pecchan

2017/06/16 01:51

mbk様 有難う御座います。 本番に反映(データベースをローカル環境から本番に環境)することがあるのでしょうか?
mbk

2017/06/16 01:59

それを設定しているのが dababase.ymlですね。
mbk

2017/06/16 02:04

あ、すみません、色々勘違いしていました。 確かに状況次第では database.yml は同じでも良いかもですね。
moke

2017/06/16 02:27 編集

開発用DBは開発環境のものを指定するのですが…。そのためのyml 開発用DBを本番のDBの中に作ってもいいのですが。 本番環境が稼働中に、同じ環境でRailsが開発できると言うことです。 ※RailsはOSが違っても期待通りの動作をするのですが、外部ライブラリがぁー! と言うことは割とよくあります。 また、なにが起こるか責任は持てませんが、ローカルのRailsから、 稼働中の本番用のDBにアクセスして色々やることも可能です。 そもそも、Railsは、開発はMysqlで、本番はOracleとかでも平気で動きますし←常人には理解できない発想 一つのRailsのプログラム内でMysqlとwinSQLserverとposgreSQLを切り替えながら同時に しかも簡単に使うことも可能です。と言うか、現在運用中ですorz それを管理するのがymlファイルと考えれば、ymlの良さがわかると思います。 とりあえず、現在の運用の方法ではあまりメリットがわからないと言うだけだと思います。 結局、開発モードと運用モードの切り替えと同時に、DBも変えてくれるってだけですからね。
pecchan

2017/06/16 02:53

mbk様 有難う御座いました。
pecchan

2017/06/16 02:57 編集

moke様 有難う御座います。 moke様の具体的な運用を聞いて、イメージが湧きました。 そこまで複雑な環境に出会ったことがないです(*_*) おっしゃる通り私の現在での環境では、ということだと思います。 大変勉強になりました。有難う御座います。 moke様にベストアンサーを決めたいのですが、コメントには出来ないですね(;_;)
moke

2017/06/16 04:21 編集

いいのですよ、過程はともかく結論はmbkと一緒なのですから ぜひmbk様をBAにしてください。 そもそも、私の回答はこの質問ではつけられない気がしますし。 犬小屋から複合商業施設までお手軽に建てられるのがRailsです。
pecchan

2017/06/16 04:30

moke様 犬小屋から複合商業施設www 爆笑しましたww
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問