💎
Railsの簡単データベース取り扱い方法
これはなに
- Ruby on Railsを体系的に学ぶの続編
- データベースの取り扱い方法を簡単にまとめてみた
- この辺
テーブルを初めて作成する
- modelはデータベースの情報を格納している
- テーブルの実体を作るには必ず必要
- なんなら以後使うのは、テーブル名ではなくmodelのクラス名である
- モデル単体のコマンド
rails generate model モデルのクラス名
- テーブルも作成するコマンド
rails generate model モデルのクラス名 カラム名1:型:(unique|index) カラム名2:型:(unique|index)
- モデルのクラス名の命名規則
- モデル名は名詞、もしくは形容詞+名詞にすること
- パスカルケースにすること
- 単数形にすること
- 例:User,BeautifulUser
テーブルを修正する場合
rails generate migration 対象動作Toクラス名 price:integer
- 対象動作Toクラス名の名付け方の参考
- ここでの名前に大きな意味は持たない
上記コマンド実行後
- DB/migrate/日時_ほにゃらら.rbが作成されるので必要な箇所を編集する
- keyの設定について
key | 概要 | option | option概要 |
---|---|---|---|
null: false | not null制約 | ||
default: false | boolean型のデフォルト | ||
t.references :user, foreign_key: true | 外部キーの設定。上記のuser はuserテーブルのuser_id のこと。自動的にidで認識する。 |
||
unique: true | id以外の一意制約 | ||
t.timestamps | データのcreated_atとupdated_at | ||
add_index :追加したいテーブル名, カラム名, 必要ならオプション名 | インデックスを追加する | :name | インデックスの名前 |
さらに細かく書いてある→【Rails】 マイグレーションファイルを徹底解説!
DB/migrate/のファイルを削除する場合
rails destroy migration 日時_ほにゃらら.rbのほにゃららの部分
migrate
-
migrateはActive Recordの機能である
-
migrateを実行するとテーブルが作成される
rails db:migrate
- app/models/rails generateで設定したモデルのクラス名.rbが作成される
- annotateのgemをつけるとより分かりやすくなる
- app/models/rails generateで設定したモデルのクラス名.rbが作成される
-
schema.rbが修正される
- 最新のDBの状態が反映されており、DBの構造を示すデータ。DBの完成形
-
間違えた場合
rails db:rollback
作成したテーブルの開発環境運用
- 実際の開発環境では
seed.rb
にデフォルトで設定するデータを作成しておく - 初めて開発環境を構築する場合、
db:setup
などで簡単に構築できる
データを操作してみる
次回!
Discussion
別名で関連付けしたい場合
t.references :hoge_user, foreign_key: { to_table: :users }
create_table :hoge, id: :integer do |t|
これだとidのdefault値がnilとしてテーブルが作成されてしまう
create_table :hoge do |t|
これならidが自動連番になる
戻したい時