Help us understand the problem. What is going on with this article?

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

カラムを追加・削除・編集したい時ってあるよね〜

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

ではいってみよう!!


カラムの追加

ターミナルでマイグレーションファイルを作成

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



ではまた!

ITmanbow
マンボウです 人間の歳で23 ミニマリスト
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした