毎回忘れるので、自分の忘備録用に
モデルの作成
外部キー制約(※1)をつけるならreferrence型で作成(インデックスは自動で付貼ってくれる)
カラムはuser_idではない点に注意
rails g model Article title:string text:text user:references
(*1)存在しない値の外部キーは登録できない(整合性がとれる)、親テーブルに外部キーが登録されている子テーブルのリソースは削除できない
外部キー制約をつけないならintger型で作成(インデックスを貼るならマイグレーションファイルで記述が必要)
カラムはuser_idにする
rails g model Article title:string text:text user_id:intger
単純にマイグレーションファイルだけの作成
rails g migration Artcle
#モデルの型
- string : 文字列(255字まで)
- text : 文字列(string以上の文字数の場合)
- references: 外部キー
- integer : 整数
- float : 浮動小数点
- datetime : 日時
- time : 時間
- date : 日付
- boolean : trueまたはfalse
削除
マイグレーションを実行する前か後かで操作が変わるので注意(rails db:migrateをしたかしてないか)
rails db:migrate前ならdestroyで削除
rails destroy model Article
rails db:migrate後ならロールバックで戻す
rails db:rollback #1つ前
rails db:rollback STEP=2 #2つ前
rails db rollback VERSION=202007012345 #バージョン指定で戻す
そのあとに rails destroy model Article で完了。
カラムの追加と削除
カラムの追加
rails g migration AddSubtitleToArticles subtitle:string
カラムの削除
rails g migration RemoveSubtitleFromArticles subtitle:string
テーブル名Artcles(複数形)になる点に注意
マイグレーションファイルではchangeメソッドの中に記述される。