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

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

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

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

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

Q&A

2回答

1472閲覧

RailsのDBの生成に関して

cheeeeeeese

総合スコア179

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

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

0グッド

0クリップ

投稿2015/09/02 03:21

皆様、質問がございます。よろしくお願い申し上げます。

Railsでは,モデルを生成したのちに、rake db:migrationを大抵行います。

この時、rake db:migrationした後に、
1「DBを生成」もしくは
2「既存のDBのマイグレーションファイルを上書き」のどちらの役割を果たすのでしょうか??

ルートとしては下記の二つと考えています。

ルート1 モデル生成>>rake db:migrationコマンドでモデルに対応するDBを生成 ルート2 モデル生成>>DBはもともとある為、rake db:migrationすることでDBのマイグレーションファイルを上書きする

よろしくお願い申し上げます。

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

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

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

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

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

guest

回答2

0

「rake db:migrate」のことですね。

rake db:migrateは、マイグレーションファイルを上書きするためのコマンドではありません。
具体的に言えばマイグレーションファイルを参照してテーブルを生成したりカラムを編集したりするコマンドです。
マイグレーションファイルは、日付_クラス名.rbのようなファイル名になってますよね。その日付がマイグレーション実行時のバージョンになっています。最後マイグレーションを実行した日付より前のマイグレーションファイルは実行しません。

それとマイグレーションファイルではDBの生成はしません。
「rake db:create」というコマンドが別にあります。
config/database.ymlの環境別に指定したデータベース名を生成します。

少しでも参考になればうれしいです。

投稿2015/09/03 08:29

deathsan

総合スコア126

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

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

0

正解は、ルート2の方ですが、厳密にはちょっと違います。

db:migrationでテーブル生成したrailsのDBには、
schema_migraionsというテーブルが自動的に作成され、
rake db:migrationコマンドをコールされると、
schema_migrationsテーブルの最新以降のmigrationファイルを実行し、
schema_migrationsテーブルを更新します。

この際、rake db:rollbackコマンドの時などもこのテーブルが参照されます。

ルート1の方ことをしたい場合は、
rake db:migrate:reset
コマンドを使用します。

ここあたりが参考になりますが、
rails rake option等のキーワードで検索すると幸せになれるかもです。

投稿2015/09/03 08:27

rifuch

総合スコア1901

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

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

cheeeeeeese

2015/09/03 09:57

詳しくお教えいただきありがとうございます。理解が深まりました^^
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問