##カラムの修正方法
マイグレーションファイルのカラムをスペルミスしたときにrails db:rollbackするとマイグレーションファイルを差し戻せる
ロールバック=>修正=>マイグレートで修復できます。
$ rails db:rollback
##データベースに反映済みのマイグレーションファイルは修正してはダメ
マイグレーションファイルが既にマイグレーション済みなのかどうかは、rails db:migrate:statusで確認できます。
$ rails db:migrate:status
適用されているときはupと表示され、修正するためにはロールバックする。適用されていないときは、downと表示され、そのまま修正や削除が可能です。
最後に
$ rails db:migrate
##カラムの追加方法
$ rails g migration Addカラム名To追加先テーブル名 追加するカラム名:データ型
【例】カラム名はtitle、テーブル名はposts、データ型はstringの場合
$ rails g migration AddTitleToPosts title:string
カラム名、削除元テーブル名は頭文字は大文字で、削除するカラム名、データ型は小文字です。
最後に
$ rails db:migrate
##カラムの削除方法
rails g migration Removeカラム名From削除元テーブル名 削除するカラム名:データ型
【例】カラム名はtitle、テーブル名はposts、データ型はstringの場合
$ rails g migration RemoveTitleFromPosts title:string
最後に
$ rails db:migrate
カラム名、削除元テーブル名は頭文字は大文字で、削除するカラム名、データ型は小文字です。
##カラムの変更
カラム名を変更するためのmigrationファイルを作成します。
【例】変更したいカラム名はtitle、変更後のカラム名はcomment、テーブル名はpostsとします。
rails g migration rename_変更したいカラム名_column_to_テーブル名
$ rails g migration rename_title_column_to_posts
####生成されたファイルを編集します。
ename_column テーブル名, 変更前のカラム名, 変更後のカラム名
class RenameRequestColumnToJobAdministrations < ActiveRecord::Migration[5.0]
def change
rename_column :posts, :title, :comment
end
end
最後に
$ rails db:migrate
##データ型の変更
$ rails g migration ChangeDatatypeカラム名Ofテーブル名
【例】データ型をstringからtextに変える場合
$ rails g migration ChangeDatatypeCommentOfPosts
カラム名、テーブル名の頭文字は大文字です。
####生成されたファイルを編集します。
change_column :テーブル名, :カラム名, :データ型
class ChangeDatatypeUseIdOfBlogs < ActiveRecord::Migration[5.0]
def change
change_column :posts, :comment, :text
end
end
最後に
$ rails db:migrate