質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

368閲覧

Rails マイグレーションファイルを使ったカラムの追加

shuyaaa

総合スコア22

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2019/01/10 07:22

同じマイグレーションファイルを使ってカラムをさらに追加できるのかという質問です。
userテーブルにカラムを追加したく、

rails g migration add_column_to_users

を実行した後、次のメソッドをマイグレーションファイルに書き込み、

def change add_column :users, :name1, :string add_column :users, :name2, :string add_column :users, :kana1, :string add_column :users, :kana2, :string add_column :users, :keitai1, :string add_column :users, :keitai2, :string add_column :users, :keitai3, :string end

以下のコマンドを実行することでカラムは追加されました。

rails db:migration

ここにさらにカラムを追加したく

def change add_column :users, :name1, :string add_column :users, :name2, :string add_column :users, :kana1, :string add_column :users, :kana2, :string add_column :users, :keitai1, :string add_column :users, :keitai2, :string add_column :users, :keitai3, :string add_column :users, :sex, :string add_column :users, :birthY, :string add_column :users, :birthM, :string add_column :users, :birthD, :string add_column :users, :postal1, :string add_column :users, :postal2, :string add_column :users, :prefecture, :string add_column :users, :city, :string add_column :users, :apartment, :string end

同じマイグレーションファイルに新しいカラムを追記し同じコマンドでマイグレーションを実行したのですが、カラムが追加されていないようです。
同じマイグレーションファイルに再度カラムを追加することはできないのでしょうか?
それとも私が気付けていないだけでカラムは生成されたのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

同じマイグレーションファイルに新しいカラムを追記し同じコマンドでマイグレーションを実行したのですが、カラムが追加されていないようです。

一度実行したマイグレーションは、(マイグレーションがどのように動いているのか熟知した上で意図的に行うというのでなければ)原則書き換えないでください。さらに列を追加する場合、新しいマイグレーションを作りましょう。

投稿2019/01/10 07:24

maisumakun

総合スコア145121

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2019/01/10 07:25

新しいマイグレーションの作成でなく、既存のファイルを書き換えなければならない理由はなにかありますでしょうか。
shuyaaa

2019/01/10 07:46

ご回答ありがとうございます。 一度実行したマイグレーションファイルを書き換えるのいけなかったのですね^^; マイグレーションファイルの名前がadd_column_to_userにしたのでカラム追加はこのファイルに統一したかっただけなので特別な理由はないです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問