はじめに
よく忘れるので、メモ
モデル作成 テーブル作成
railsでモデルを作成する際に、テーブルを作成するためのマイグレーションファイルが同時に作られます。
↓モデル作成コマンド
$ rails generate model [モデル名] [属性名:データ型 属性名:データ型・・・] [オプション]
省略版
$ rails g model [モデル名] [属性名:データ型 属性名:データ型・・・] [オプション]
-コマンドを実行すると、自動で作られるファイル
①モデルのクラスファイル
②マイグレーションファイル
③モデルの自動テスト
④モデルの自動テストで使うfictureファイル
例 $ rails g model User name:string email:string
上のコマンドで作ると下のマイグレーションができる。
class CreateUsers < ActiveRecord::Migration[5.2]
def change
create_table :users do |t|
t.string :name
t.string :email
t.timestamps
end
end
end
そしたら、マイグレーションをする。
$ rails db:migrate
終わり
テーブル削除 カラム追加・削除
※クラス名はAddXXXToYYY、またはRemoveXXXFromYYYとします。
「XXX」にはテーブル名、YYYにはカラム名(複数のカラムを変更したい場合などがあるのでカラム名ではなくても大丈夫)
カラム追加のマイグレーション作成
※memo(text型)のカラムを追加する場合
例 $ rails g migration AddMemoToUsers memo:text
作成されたら**$ rails db:migrate**を実行し反映させます。
カラム削除のマイグレーション作成
※name(string型)のカラムを削除したい場合
例 $ rails g migration RemoveNameFromUsers name:string
作成されたら**$ rails db:migrate**を実行し反映させます。
テーブルの削除
マイグレーションファイルの作成
本当はusersとしたかったところをuserssとしてしまい。テーブルを削除することに。なので、マイグレーションファイルを作成する。
例 $ rails g migration userss
マイグレーションファイル編集
消したいテーブルを指定して、drop_table :userssと記述する。
例 class DeleteUserss < ActiveRecord::Migration[6.0]
def change
drop_table :userss
end
end
下記のコマンドを叩くと、データベースから削除される。
$ rails db:migrate
ファイルの削除
ファイルツリーから直接消さずに、コマンドを実行してファイルを削除しましょう。
$ rails destroy migration クラス名
省略
$ rails d migration クラス名
例 $rails d migration AddMemoToUsers