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

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

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

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

Q&A

解決済

2回答

592閲覧

railsでmigrationファイルを生成しカラムを追加後,更にカラムを追加したいとき

rikuou

総合スコア25

Ruby on Rails

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

0グッド

0クリップ

投稿2020/07/05 11:07

railsでusersテーブルにカラムの追加を行いたい際に,

rails g migration AddColumnToUsers name:string image_name:string profile:text

としmigrationファイルを作成したとします

class AddColumnToUsers < ActiveRecord::Migration[6.0] def change add_column :users, :name, :string add_column :users, :image_name, :string add_column :users, :profile, :text end end

その後もう一度usersテーブルにカラムの追加を行いたいときには
上でつくったmigrationファイルにadd_columnを使ってカラムの追加はできないのでしょうか?

class AddColumnToUsers < ActiveRecord::Migration[6.0] def change add_column :users, :name, :string add_column :users, :image_name, :string add_column :users, :profile, :text add_column :users, :website, :string add_column :users, :sex, :string end end

自分がadd_columnを使ってwebsite,sexというカラムを追加したあとにファイルを保存し,rails db:migrateしても
schema.rbにカラムが追加されません

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

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

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

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

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

guest

回答2

0

ベストアンサー

普通は、変更の度に maigration ファイルを作って行きます。

migration ファイルを編集して,その内容を反映させたいなら、
db;drop, db:create:, db:migrate として、DB をつくりなおすという手はあります。

(migrate ファイル編集前に rollback して、その後に migrate ファイルを編集してから、 db;migarete するようなことも可能ですが、migrate の仕組みを理解していないと混乱して DB を壊してしまい、結局は DB つくりなおしすることになってしまう可能性があります)

投稿2020/07/05 11:20

katoy

総合スコア22324

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

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

rikuou19

2020/07/05 11:22

ありがとうございます、助かりました!
winterboum

2020/07/05 13:09

この方法を採る場合は、git commitしていたら その手当も必要です。 remoteにpushしている場合は、やめたほうが良いです。
guest

0

add_columnを使ってwebsite,sexというカラムを追加したあとにファイルを保存し,rails db:migrateしても

schema.rbにカラムが追加されません

はい、マイグレーションはファイル単位で管理されますので、すでにマイグレーションを通したファイルを編集しても追加はできません。

新しいマイグレーションを立てるのが無難です。

投稿2020/07/05 11:23

maisumakun

総合スコア145121

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問