54
66

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

カラムを追加・削除・編集する方法 ❏Rails❏

Last updated at Posted at 2019-11-29

#カラムを追加・削除・編集したい時ってあるよね〜
テーブルを作ったはいいものの後々で必要なカラムが出てくることありますよね?
カラムの洗い出しが甘いって?そのとおり!

ではいってみよう!!


#カラムの追加 ターミナルでマイグレーションファイルを作成

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

ではまた!
54
66
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
54
66

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?