#マイグレーションに新カラムを追加したい#
●Railsに「devise」gemをインストールし、ログイン機能を作成。
●サインアップ時に、元々テーブルにはなかった「ニックネーム機能」(カラム)を作成・追加したい。
# 定義
rails g migration Addカラム名To追加先テーブル名 追加するカラム名:型
# 例
rails g migration AddNicknameToUsers nickname:string
ターミナルで、上記コマンドを実行すると、マイグレーションに新しいカラムを追加する事ができます。
そこで以下の2つの疑問を感じました。
#疑問1:Addカラム名To追加先テーブル名の「カラム名」と「テーブル名」を大文字にしなかったら(キャメルケースにしなかったら)どうなるの?
結果
マイグレーションファイルは作成されるもののSequelPro上のカラムはうまく生成されなかった。
【ターミナル上】
hogehoge % rails g migration AddnicknameTousers nickname:string
Running via Spring preloader in process 40102
invoke active_record
create db/migrate/20200829125120_addnickname_tousers.rb
hogehoge % rails db:migrate
== 20200829125120 AddnicknameTousers: migrating ===============================
== 20200829125120 AddnicknameTousers: migrated (0.0000s) ======================
class AddnicknameTousers < ActiveRecord::Migration[6.0]
def change #カラムの追加が出来ていない
end
end
#疑問2:Addカラム名To追加先テーブル名をスネークケースにしたらどうなるの?
結果
同じように作成できた。
【ターミナル上】
hogehoge % rails g migration Add_nickname_To_users nickname:string
Running via Spring preloader in process 40241
invoke active_record
create db/migrate/20200829125501_add_nickname_to_users.rb
hogehoge % rails db:migrate
== 20200829125501 AddNicknameToUsers: migrating ==============================
-- add_column(:users, :nickname, :string)
-> 0.0229s
== 20200829125501 AddNicknameToUsers: migrated (0.0230s) =====================
class AddNicknameToUsers < ActiveRecord::Migration[6.0]
def change
add_column :users, :nickname, :string #カラムの追加が出来た!
end
end
以上です。
間違いなどありましたら、ご指摘いただけると嬉しいです。