Ruby on Railsにおけるデータベース構築
Ruby on RailsでWebアプリケーションを作成していると、MVCモデルに気を取られてデータベースのことを忘れてしまうこともしばしば。
ただ、非常にかんたんにデーターベースを作成、してまた操作もSQLではなくRubyでできます。
(1)マイグレーションファイル(設計図)の作成
マイグレーションファイルとは、データベースのもととなるの設計図のようなものです。
このマイグレーションファイルを実行すると、それに沿ったデータベースができあがる。
ex) ユーザが投稿する内容を保管しておくためのデータベースを作る
まずコンソールで以下のコマンドを実行する
rails g model Post content:text
#マイグレーションファイルを作成する
ここで注意なのが、postsテーブルを作成する場合にはPostと単数形にすることです。
contentはカラム名(Excelでいうところの列の名前)で、textはデータの型(text以外にもstringやintegerなど)
先程のコマンドを実行することで、db/migrateフォルダの下にマイグレーションファイルが作成されます。
(2)マイグレーションファイル(設計図)を使ってデータベース(目的物)に変更を加える
コンソールで以下のコマンドを実行する
rails db:migrate
ここでよくあるミスとして、(1)でマイグレーションファイルは作ったけど、その後データベースに反映させていないというケース。
その場合マイグレーションエラーが発生してしまうので、上記のコマンドでマイグレーションファイルを反省させましょう。
(参考)rails と rakeの違い
【参考リンク】
binって何?railsとrakeって何??(後編)
マイグレーションファイルを適用させるときのコマンドとして、参考先によっては以下の2つの方法が存在しています。
しかし結論から言うと、今の段階ではどちらでもOK。できるならrailsのほうがいいかも。という状況です。
#(A)rails を使う
rails db:migrate
#(B)rake を使う
rake db:migrate
railsは
アプリケーションに最低限必要なフォルダやファイルを自動的に作成
であり
rakeは
Rakeとは Rubyで記述されたビルドツールです。
です。
できることはほとんど同じです。
ただしRuby5からはrake→railsに統一されたため、今後はrailsをメインとして使っていく方向のほうがいいかと思います。
(もしrakeつかえ!みたいなご指摘あればいただけると助かります。)