#カラムを追加・削除・編集したい時ってあるよね〜
テーブルを作ったはいいものの後々で必要なカラムが出てくることありますよね?
カラムの洗い出しが甘いって?そのとおり!
ではいってみよう!!
#カラムの追加 ターミナルでマイグレーションファイルを作成
rails g migration Addカラム名Toテーブル名 カラム名:型
ターミナル
①
rails g migration AddTitleToTweets title:string
②
rails g migration AddDetialsToTweets title:string date:date
#複数選択も可能
#Detailsの部分は何でもOK
マイグレーションファイル
①
class AddTitleToTweets < ActiveRecord::Migration[5.2]
def change
add_column :tweets, :title, :string
end
end
②
class AddTitleToTweets < ActiveRecord::Migration[5.2]
def change
add_column :tweets, :title, :string
add_column :tweets, :date, :date
end
end
いざ実行!!
ターミナル
rails db:migrate
#カラムの削除 ターミナルでマイグレーションファイルを作成
rails g migration Removeカラム名Fromテーブル名 カラム名:型
ターミナル
rails g migration RemoveTitleFromTweets title:string
マイグレーションファイル
class RemoveTitleFromTweets < ActiveRecord::Migration[5.2]
def change
remove_column :tweets, :title, :string
end
end
いざ実行!!
ターミナル
rails db:migrate
#カラム名変更 ターミナルでマイグレーションファイルを作成 `rails g migration rename_変更前のカラム名_column_to_テーブル名`
ターミナル
rails g migration rename_title_column_to_tweets
changeメソッドの中に追記
rename_column :テーブル名, :変更前の名前, :変更後の名前
マイグレーションファイル
class RenameTitleColumnToTweets < ActiveRecord::Migration[5.2]
def change
rename_column :users, :title, :theme
end
end
いざ実行!!
ターミナル
rails db:migrate
#データ型変更 ターミナルでマイグレーションファイルを作成
rails g migration ChangeDatatypeカラム名Ofテーブル名
ターミナル
rails g migration ChangeDatatypeTitleOfTweets
マイグレーションファイル
class ChangeDatatypeTitleOfTweets < ActiveRecord::Migration[5.2]
def change
end
end
changeメソッドの中に追記 `change_column :テーブル名, :カラム名, :新しいデータ型`
マイグレーションファイル
class ChangeDatatypeTitleOfTweets < ActiveRecord::Migration[5.2]
def change
change_column :tweets, :title, :text
end
end
いざ実行!!
ターミナル
rails db:migrate
ではまた!