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

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

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

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 6

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

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

0回答

1905閲覧

rails db:migrateをしてもカラムが追加されず、schema.rbも更新されず、エラー文も出ない。

kazumo24

総合スコア2

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 6

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

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2021/02/01 04:07

開発環境

rails 6.0.3.4
ruby 2.6.5

前提・実現したいこと

テーブルにカラムを追加したい

発生している問題

rails db:migrateを実行してもマイグレーションファイルに記述したカラムが追加されない。
エラー文も出ず、schema.rbにもカラムの記述がない。

rails new uber-eats-like -d mysql --api →cd uber-eats-like →rails db:create →rails g migration CreateRestaurants →migrationファイルの中身を記述 →bundle exec rails db:migrate

上記の流れでプロジェクト作成→rails db:migrateよりカラムを追加したところ
テーブルが作成されず、schema.rbは作成はされるものの、編集内容が反映されない。

該当のソースコード

ruby

1#migrationファイル 2 3class CreateRestaurants < ActiveRecord::Migration[6.0] 4 def change 5 create_table :restaurants do |t| 6 t.string :name, null: false 7 t.integer :fee, null: false, default: 0 8 t.integer :time_required, null: false 9 10 t.timestamps 11 end 12 end 13end

ruby

1#bundle exec rails db:migrate実行後に生成されたschema.rb 2ActiveRecord::Schema.define(version: 2021_02_01_033148) do 3 4 create_table "restaurants", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4", force: :cascade do |t| 5 end 6 7end

試したこと

○rails db:migrate:reset
→ターミナル上では正常に動作するが、編集内容は反映されない

○プロジェクトの作り直し
→挙動変化なし

○APIモードを指定せずに新規アプリを作成し、同手順を踏んだ
→挙動変化なし

○他アプリで同じ操作をした
→他アプリも同様に、migrateしても編集内容が反映されないため、環境設定が原因かと仮説を立てた

○railsのバージョン6.0.0と指定でし再度プロジェクト作成(過去にこのバージョンを使い問題なく動作したため)
→なぜか勝手に6.0.3.4に戻る
→gem uninstall railties -v '6.0.3.4'でrails 6.0.3.4アンインストール
→それでも勝手に6.0.3.4になってしまう

→gem listでgem一覧を確認すると、action cableや、activemodelなど6.0.3.4というバージョンのgemが多数あったためこれに引きづられて、自動でrailsのバージョンが更新されているのではないかという仮説を立てた

→現存するgemを全てアンインストールし、railsを再度インストール
それでも6.0.3.4に戻ってしまう。当然、マイグレートもうまくいかず...。

今ここで詰まっているところです。
そもそもバージョンが違うからマイグレートできない。というのも何か違うような気がして...。
他に考えられる原因はありますでしょうか?

何卒お力添えの方、よろしくお願いいたします。

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

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

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

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

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

winterboum

2021/02/01 23:04 編集

Railsのversion違いはこのケースでは気にしないで良いでしょう。 参考にしたいので、 rails db:migrate:status の結果を載せてください。 あと、 db:migrate してから migration ファイルを編集し、再び db:migrateした のでは無いですよね?
kazumo24

2021/02/02 08:08

winterboumさん、ご回答ありがとうございます。 以下 rails db:migrate:status の結果でございます。 https://gyazo.com/497b2a87f9b01f298c9a9fe489760dcd いえ、編集した時は、マイグレーションファイルのステータスをdownにしてから行っておりますのでそこは問題ないかと思われます...。
winterboum

2021/02/02 09:15

うーむ、、、 すると謎ですね。。。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問