開発環境
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に戻ってしまう。当然、マイグレートもうまくいかず...。
今ここで詰まっているところです。
そもそもバージョンが違うからマイグレートできない。というのも何か違うような気がして...。
他に考えられる原因はありますでしょうか?
何卒お力添えの方、よろしくお願いいたします。
あなたの回答
tips
プレビュー