Ruby
Rails
RubyOnRails

【はじめてのプログラミング】Ruby on Rails_ データベース構築。あとrailsとrakeの違い。

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つかえ!みたいなご指摘あればいただけると助かります。)