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

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

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

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Ruby on Rails

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

Q&A

解決済

2回答

755閲覧

bundle exec rake db:migrate の動作について

退会済みユーザー

退会済みユーザー

総合スコア0

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Ruby on Rails

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

0グッド

0クリップ

投稿2018/10/03 07:46

編集2018/10/04 09:40

docker 上の開発環境を構築するときに staging の MySQL のダンプファイルをもってきて

mysql < db/Dump20181001.sql
bundle exec rake db:migrate

みたいなコマンドをうっているのですが
bundle exec rake db:migrate
は何をしているんでしょうか

MySQL 自体は Rails 以外のシステムでも使われているため Rails に依存したものではないはずなので
ダンプファイルを流し込んだ時点でステージングと同じ状態になっている気がするのですが

実際これを実行しないと Rails から MySQL が使えるようにならないので
さらにその後 Rails のコマンドをうつことにどんな意味があるのでしょうか

追記:

bundle exec は調べてもよく理解できなかったのですが
rake db:migrate は
このコマンドを実行すると,Railsプロジェクトのdb/migrateディレクトリの中にあるスクリプトファイルに基づいてデータベースにテーブルを作成します.
とあるのですがダンプを流し込んだ時点でデータベースにテーブルができてる気がするのでなぜ必要なのかがわかりません

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

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

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

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

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

m.ts10806

2018/10/03 09:30

コマンドをそれぞれ1つ1つ検索したうえで理解できないのか、検索はしたがただ検索したことを書いていないのか、そもそも何も調べていないのか どれでしょうか。最後の1文の根拠など具体的に記載してください
退会済みユーザー

退会済みユーザー

2018/10/03 09:47

申し訳ありません  そもそも何も調べてませんでした…  自分で調べます
退会済みユーザー

退会済みユーザー

2018/10/03 09:51

本当に申し訳ありません データベースに何がおこるかだけを知りたいのですが bundle を調べただけで Gem がどうこうという記事がでてきて Gem もわからないので全部調べると回り道になるかと思って安易に質問してしまいました  本当に申し訳ありません
m.ts10806

2018/10/03 10:01

私の方も割と「これ質問して回答待って、をしているより自分で調べたほうが早いのでは?」と簡単に思ってしまうところはあるので・・。いずれにしても質問の仕方としては調べた結果を以て何がどうわからないのか質問された方が的確で良い回答がつきやすくなります。
m.ts10806

2018/10/03 10:02

質問の仕方によっては「調べるの面倒だからかわりに調べてよ」と捉えられなくもないですしね。
退会済みユーザー

退会済みユーザー

2018/10/04 04:15

>最後の1文の根拠など具体的に記載してください MySQLはRailsのシステム以外で使われるものなのでRailsに依存してるわけではないしダンプファイルを流し込んだ時点で同じになるのでは?と思った次第です そこにさらに Rails のコマンドをうつ意味がよくわからないというのが質問の意図です
m.ts10806

2018/10/04 04:18

質問を編集して追記してください
dice142

2018/10/04 10:42

何か参考にしながら行っているのでしたらその参考にしたものの情報を提示していただきたいです。本ならタイトルとかwebサイトならURLとか。
退会済みユーザー

退会済みユーザー

2018/10/04 10:54 編集

docker 環境の構築は社内の先輩に教えてもらった手順をなぞっていて 理解できなかった MySQL 関連のコマンドのみ記載しています コマンド内容に関しては google でコマンドをいれて出てきた検索結果を適当にみただけで、どこのページに何がかかれてあったかは覚えてないです  ユニークな情報であればURLは記載するようにはしてますがだいたいどこのブログでも同じような内容なので参照の必要はないかなと思いメモしてませんでした 申し訳ありません
dice142

2018/10/04 10:54

そのキーワードで検索して探すとか履歴とか遡ったりすればいずれは見つかるかなとは思うのですが、いかがでしょう? というのもダンプファイルを実行した後にmigrateしているのを私は見たことがないもので。
退会済みユーザー

退会済みユーザー

2018/10/04 10:59

>ダンプファイルを実行した後にmigrateしているのを私は見たことがない  やはりそうなのですね…  ただ実際 migrate をしないとなぜか MySQL のアクセスに失敗するんんですがかなり固有の問題なのですね  調べてわかることはこちらできくようにしていたのですがシステも固有の問題なのであれば回答は得られないと思うのでリーダーにきいてみることにします  それだけわかるだけでも非常に助かりました  ありがとうございます
guest

回答2

0

ベストアンサー

ステージングからダンプして開発環境にインポートするのは数分かかるため、毎回行うのは手間である
動作チェックで特に最新のデータが必要でなければダンプファイルは古いまま使いまわして、
カラム追加等は頻繁に行われるため最新のスキーマを反映させるためにこまめにmigrateを行うということでした

普通はカラム追加等スキーマへの変更はそうそうあるものではないんでしょうか
自社の固有事情みたいなので申し訳ありません

投稿2018/10/05 04:13

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

一応回答しますが、個人的にメインは区切り線の下の方の内容。

bundle exec rake db:migrate

は何をしているんでしょうか

bundle execはプロジェクトのライブラリから実行するコマンドなので
「プロジェクトのライブラリにあるrakeコマンドでdb:migrateを実行している」
ということになります。

MySQL 自体は Rails 以外のシステムでも使われているため Rails に依存したものではないはずなので

ダンプファイルを流し込んだ時点でステージングと同じ状態になっている気がするのですが
実際これを実行しないと Rails から MySQL が使えるようにならないので
さらにその後 Rails のコマンドをうつことにどんな意味があるのでしょうか

この部分が全体的に謎で、特に

ダンプファイルを流し込んだ

これを行う意図がわからないというのと

Rails から MySQL が使えるようにならない

なぜ使えないと判断したのか、エラー等に関しての明記がないので
質問文を見た側としては「文章の意図がわからない」状態になります。

ダンプを流し込んだ時点でデータベースにテーブルができてる気がするのでなぜ必要なのかがわかりません

上記と被りますが、ダンプしたものをインポートする意図がわかりません。
migrationファイルがあるのでそちらでテーブル構成は復旧(というか構築)できますし
データの中身もということであればinsert文だけダンプファイルをmigrate後に使うべきです。


以下の内容は 質問するなという意図ではない ので誤解しないでください。
わからないことを調べて、調べたけど理解できなくて質問するというのは良いことです。
と前置きをしておきます。

質問者様の最近の質問から、質問者様の作業における状況は
運用的にイレギュラーなものかと思います。
加えて失礼ながらRailsに関して理解が浅いとお見受けしております。
(理解が深ければ質問せずに解決できる気がするので当たり前なのですが。)
そのため字面のみで質問回答が基本のteratailでは、質問者様の意図が
回答者に伝わりにくく、用語での齟齬が発生した場合に回答が正しく
質問者様に伝わらないことが考えられます。

イレギュラーな状況については字面のみで把握することは難しいので
対面でやりたいことについて画面を見ながらとか図に起こしてやりたいに対する理解を
すり合わせするとかで、解決に近づいていくのがベストな方法かと思います。

teratailでの回答者は質問者様と同じ状況にはありませんし、
解決しなければいけないという義務も責任もないので、
正しい解決策を提示できるとは限りません。

その点同じチームの方ですと、対面で話ができますし
解決しないと業務に関わりますのでより正しい解決策か
あるいは別の方法での解決に導いてくれるかと思います。
(チーム内の人が皆、質問したら怒るという性格なら何も言えませんが。。。)

イレギュラーな状況における質問が多いようでしたのでアドバイスとして
回答外のことを長々と書いてしまいましたが、改めて言いますと
調べて解決できなかったことを質問すること自体は良いことなので
そこは誤解なきよう捉えていただきますと幸いです。

投稿2018/10/04 13:20

dice142

総合スコア5158

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

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

退会済みユーザー

退会済みユーザー

2018/10/05 02:24

>Railsに関して理解が浅い そのとおりでフレームワーク等に一切ふれていない上にrubyもさわったことがないのですがRailsをさわることになってしまいました チームの人にも質問すれば優しく答えていただけますが、いかんせん作業中頻繁にわからないことが出てくるので、できるだけプログラミングに関する一般的な問題については自分で調べてみてください、社内の固有事情であればどんどん質問してくださいといわれていて、知識不足のために一般的によくある話なのか社内の固有事情なのかも判断できない状況です なので解決策がでれば一番なのですが、それが外部の人には回答できない固有の問題なのかを判断する意味でもとりあえず質問してしまっているというのが現状です dice142さんの意見はイレギュラーかどうかが判断できない内容は最初に社内で聞いてから質問しろということみたいですが… ただ質問内容に関してはできるだけ固有事情にならないように1つの事柄にしぼって質問しているつもりです 今回の場合も純粋にコマンドの挙動をきいているだけであって、ダンプを流し込んだ時点でMySQLは同じ状態になるためにマイグレーションをする必要はない と予想はできていたのですがその場合マイグレーションを行う意味がない という点が疑問であり 他の回答者さまも同じ疑問を抱かれるのであれば社内に持ち込んでこのマイグレーションは何のためにやっているんですかと質問することはできるのです 基本的な内容を質問すれば調べろと言われるし、社内事情や質問意図を出せば社内で聞けと言われるし具体的に今回の場合どういう調べ方をしてどういう質問をするのがベストだったのでしょうか
dice142

2018/10/05 04:37

> dice142さんの意見はイレギュラーかどうかが判断できない内容は最初に社内で聞いてから質問しろということみたいですが… いえ、イレギュラーか判断できるかはどうかは言ってなくて、 私が見るに全体的にイレギュラーな用件だと思うので、社内で確認した方が良いのでは?という意見です。 > 基本的な内容を質問すれば調べろと言われる 調べてやってみてわからなければ、参考資料と自分の意見を取り入れて質問すると、回答側も把握しやすくなります。 (今回はやってみるのはリスクがあるので仕方ないですが。) > 社内事情や質問意図を出せば社内で聞けと言われる 命令形として伝わってしまったなら謝ります。すみません。 社内事情を知らなかったので安易に勧めてしまいました。 > 今回の場合どういう調べ方をしてどういう質問をするのがベストだったのでしょうか teratailでは回答者により考えた方は異なりますので、どれが正解かはわかりません。 それぞれの意見を一参考としていただくのが最善かと思います。 適格な回答でなくてすみません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問