アラフォーからのプログラミングとデザイン

大人から始めたプログラミングとデザインについてのあれこれ

Railsチュートリアル復習中:苦手なデータベースのところ

f:id:simpledancer:20171219214825p:plain

今日はデータベースのところで以前全然スルーしていたところです。

Railsはデータを保存する際にデフォルトでリレーショナルデータベースを使います。リレーショナルデータベースは、データ行で構成されるテーブルからなり、各行はデータ属性のカラム (列) を持ちます。 

 まずUserモデルを作るためにコマンドに

 $ rails generate controller Users new

します。

そうするとファイルがいろいろできてきます。

この中にマイグレーションという新しいファイルが生成されます。

 マイグレーションは、データベースの構造をインクリメンタルに変更する手段を提供します。それにより、要求が変更された場合にデータモデルを適合させることができます。このUserモデルの例の場合、マイグレーションはモデル生成スクリプトによって自動的に作られました。

マイグレーションファイルを生成する流れ 

f:id:simpledancer:20171219212002p:plain

マイグレーションファイルのファイル名には先頭に生成された時間のタイムスタンプがつきます。

マイグレーション自体はデータベースに変更を与えるchangeメソッドの集まり

changeメソッドはcreate_tableというRailsのメソッドを呼びユーザーを保存するためのテーブルをデータベースに作成します。

create_tableメソッドはブロック変数を1つ持つブロック  を受け取ります。 

 ブロックの中でcreate_tableメソッドはtオブジェクトを使って、nameとemailカラムをデータベースに作ります モデル名は単数形 (User) ですが、テーブル名は複数形 (users) です(これはRailsで用いられる言葉の慣習を反映)モデルはひとりのユーザーを表すのに対し、データベースのテーブルは複数のユーザーから構成されます。

ブロックの最後の行t.timestampsは特別なコマンドで、created_atとupdated_atという2つの「マジックカラム (Magic Columns)」を作成します。これらは、あるユーザーが作成または更新されたときに、その時刻を自動的に記録するタイムスタンプです  

 $ rails db:migrate

 マイグレーションを実行します。

 db:migrateが実行されると、db/development.sqlite3という名前のファイルが生成されます。これはSQLite5データベースの実体。

データベースの構造を見ることができるツールがdevelopment.sqlite3ファイルを開くためのDB Browser for SQLiteというものがあります。

f:id:simpledancer:20171219213711p:plain

DB Browser for SQLite

 ダウンロードして、開くとこのように構造を見ることができます!(これ、前回やってませんでした多分)

f:id:simpledancer:20171219214046p:plain

データベースのところはちょっとかじってはやめ、かじってはやめ、、、で理解が全然できていないのでこれを機会にちゃんと理解したいなと思ってます。

 

続く!

simpledancer.hatenablog.com

simpledancer.hatenablog.com