質問: ### 前提・実現したいこと Ruby on Rails で簡単なアプリを作っています。 deviseを使ってUser機能を実装中に以下のエラーメッセージが発生しました。 deviseで自動生成したものとrails g model Userで生成したものがコンフリクトしてしまっているのですが、該当ファイルを削除しても解決しません。 ### 発生している問題・エラーメッセージ Userモデルを作るためにGemのdeviseを導入したのですが、導入前にすでに手動でUserモデルを作ってしまっていました。 rails g model User で一度作ってしまった後に、deviseでもう一度Userモデルを作ってしまったため、訳のわからないことになってしまいました...。 最初のUserモデルを消したり、ロールバックをしたりしたのですが、以下のエラーが出て、rake db:migrateができない状態です。 ``` rake aborted! StandardError: An error has occurred, all later migrations canceled: ``` ### 試したこと rake:db:migrate:reset rake:db:reset rake db:migrate VERSION=0 いずれも table doesn't exist. というエラーが出るのですが、そもそもrake db:migrateでいまテーブルを作ろうとしているので、どう対処していいのかわかりません。 ### 補足情報(FW/ツールのバージョンなど) データベースはSchema_migration のみ残っており、Usersは削除しています。 migrationファイルは、deviseで自動生成されたものだけ残っています。 Routes.rbには ``` Rails.application.routes.draw do end ``` しか書かれていません。 User modelも削除しています。
回答: データベースのusersテーブルを手動で消したところ、rake db:migrateできました。 devise_create_users.rbのmigrationファイルで ``` class DeviseCreateUsers < ActiveRecord::Migration ``` とあるのに、データベースにすでにusersテーブルがあったのが原因でした。 勉強になりました。