こんな時
あ。追加でカラム欲しいな。
あ。型変更したいな。
カラムの型を簡単にさっと見たいな。
型っていっぱいあったよな、どれがなんだっけ。
記載事項
1.カラム追加方法
2.カラムの型変更方法
3.ターミナルでの型確認方法
4.カラムの型の種類(毎回ここにRails見に行ってるので、Qiitaに持ってきます。)
1.カラム追加方法
ターミナル
rails g migration Addカラム名Toテーブル名 カラム名:データ型
# postsテーブルにstart_timeカラムをtime型で追加
rails g migration AddStartTimeToPosts start_time:time
# マイグレーションファイルが作成される
# create db/migrate/~~~_add_start_time_to_posts.rb
ファイルを編集。
他にもカラム追加したかったので追加。
null: falseもつけて、空のデータは保存不可にします。
~~~_add_start_time_to_posts.rb
class AddStartTimeToPosts < ActiveRecord::Migration[5.2]
def change
add_column :posts, :start_time, :time, null: false
add_column :posts, :end_time, :time, null: false
add_column :posts, :golf_place, :string
add_column :posts, :min_member, :integer, null: false
add_column :posts, :max_member, :integer, null: false
end
end
rails db:migrateして終了!!
ターミナル
rails db:migrate
2.カラムの型変更方法
ターミナル
rails g migration change_data_カラム名_to_テーブル名
# postsテーブルのdateカラムの型を変更
rails g migration change_data_date_to_posts
# マイグレーションファイルが出来る
# db/migrate/~~~_change_data_date_to_posts.rb
マイグレーションファイルを編集します。
~~~_change_data_date_to_posts.rb
# change_column :posts, :カラム名, :型
# dateカラムをdate型に変更したかったのです。
class ChangeDataDateToPosts < ActiveRecord::Migration[5.2]
def change
change_column :posts, :date, :date
end
end
rails db:migrateして終了!!
ターミナル
rails db:migrate
3.カラムの型確認方法
ターミナルでコンソールを使います。
ターミナル
rails c
ターミナル
# モデル名.columns_hash['カラム名'].type
pry(main)> Post.columns_hash['date'].type
=> :date
dateカラムはdate型と確認出来ましたね。
4.カラムの型一覧
最後にカラムの型一覧です。
[カラムの型]
- データ方 説明
- string 文字列
- text 長い文字列
- integer 整数
- float 浮動小数
- decimal 精度の高い小数
- datetime 日時
- timestamp より細かい日時
- time 時間
- date 日付
- binary バイナリデータ
- boolean Boolean型
元ソース Rails
ありがとうございました!!