💎

Railsの簡単データベース取り扱い方法

2022/11/18に公開4

これはなに

テーブルを初めて作成する

  • 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が作成される
  • schema.rbが修正される

    • 最新のDBの状態が反映されており、DBの構造を示すデータ。DBの完成形
  • 間違えた場合

    rails db:rollback
    

作成したテーブルの開発環境運用

データを操作してみる

次回!

参照

Discussion

annaanna

別名で関連付けしたい場合
t.references :hoge_user, foreign_key: { to_table: :users }

annaanna

create_table :hoge, id: :integer do |t|
これだとidのdefault値がnilとしてテーブルが作成されてしまう

create_table :hoge do |t|
これならidが自動連番になる