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

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

新規登録して質問してみよう
ただいま回答率
85.49%
MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Ruby on Rails

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

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

解決済

1回答

1703閲覧

既存のデータベースにカラムを追加したい

kinokosan

総合スコア7

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Ruby on Rails

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

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

0グッド

0クリップ

投稿2016/03/10 07:00

編集2016/03/10 07:09

rails 初心者です。

###前提・実現したいこと
既存のデータベースにカラムを追加したいです。(データベースにはデータも既に入っております。)

###発生している問題・エラーメッセージ
migrationファイルに追加したいカラム(:tag)を追記し、
ターミナル上で rake db:migrateしてもエラーも何も起こらないのはなぜでしょうか。

###20160212060445_create_topics.rb

class CreateTopics < ActiveRecord::Migration def change create_table :topics do |t| t.text :body t.string :tag t.timestamps end end end

Status Migration ID Migration Name

up 20160212060445 Create topics
up 20160213100018 ********** NO FILE **********
up 20160217084309 ********** NO FILE **********
up 20160218092058 Create users

マイグレートのステータスは上記のようです。

質問方法がよくわからず、申し訳ありませんが、必要な情報などございましたらお教えいただきたいです。
よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

既存のテーブルにカラムを追加したいと思い、
モデル生成の際に作成されたマイグレーションファイルを編集したが、その内容が反映されない。
という状況であるとの理解を前提で回答します。
もし、外していたらすみません。

すでにマイグレーション済みのマイグレーションファイルを編集しても、その内容は反映されません。
rake db:migrateで反映されるのは、最後に適用したマイグレーションファイル以降のものだけです。
やるとすれば、編集したマイグレーションまでロールバックしてやり直すか、新たにカラムを追加するマイグレーションファイルを作成して適用するかです。

ロールバックするやり方だと、テーブルを削除して追加、となるので、既存のデータは全て削除されてしまいますから、新たにマイグレーションファイルを作成して適用する方法が良いでしょう。

rails g migration NewMigrationClassName

上記コマンドで、新たにマイグレーションファイルが生成される(上記の場合、YYYYmmddHHMMSS_new_migration_class_name.rb)
そのファイルにカラム追加のマイグレーションを書いてあげればOKです。

Ruby

1class NewMigrationClassName < ActiveRecord::Migration 2 def up 3 add_column :topics, :tag, :string 4 end 5 6 def down 7 remove_column :topics, :tag 8 end 9end

上記方法で、カラム名の追加、削除、カラム名変更など行えます。
rails migrationで検索すれば、有用なトピックがたくさん見つかるでしょう。

投稿2016/03/10 07:24

rifuch

総合スコア1901

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

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

kinokosan

2016/03/10 09:31

とても丁寧かつ、わかりやすい説明ありがとうございます。 新しいファイルを作り、カラムを追加することができました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問