質問: 初心者です。 rails 4.2.1 sqlite3 3.6.20 でdeviseを使いたく、3.4.1をbundle installして、rake db:migrateしてみたのですが、 アプリケーションエラーが出て上手く動きません。 1:アプリケーションエラーメッセージ Migrations are pending. To resolve this issue, run: bin/rake db:migrate RAILS_ENV=development 2:下記を実行 bin/rake db:migrate RAILS_ENV=development 3:エラーが出ます。 rake aborted! StandardError: An error has occurred, this and all later migrations canceled: SQLite3::SQLException: duplicate column name: email: ALTER TABLE "users" ADD "email" varchar DEFAULT '' NOT NULL/home/.rvm/gems/ruby-2.2.0/gems/sqlite3-1.3.10/lib/sqlite3/database.rb:91:in `initialize' /home/.rvm/gems/ruby-2.2.0/gems/sqlite3-1.3.10/lib/sqlite3/database.rb:91:in`new' /home/.rvm/gems/ruby-2.2.0/gems/sqlite3-1.3.10/lib/sqlite3/database.rb:91:in `prepare' /home/.rvm/gems/ruby-2.2.0/gems/sqlite3-1.3.10/lib/sqlite3/database.rb:134:in`execute' ~~~つづく 他の質問とかを見ているとemailカラムが被ってるんじゃない?というエラーのようなのですが、 下記のmigrateファイルや、DBのテーブル自体を見ても「email」というカラムは 存在しませんでした。 20150503133518_create_lists.rb(もともとのアプリケーションで使っているファイル) 20150528001224_add_devise_to_users.rb(deviseで生成されたファイル) --- ☆色々いじってみた結果 1:エラー自体は、 20150528001224_add_devise_to_users.rb(deviseで生成されたファイル) をmigrateフォルダから削除したら解消します。 2:マイグレーションファイルのemailをemail1に変えたら、次のカラムが同じエラーになりました。 3: 20150528001224_add_devise_to_users.rb(deviseで生成されたファイル) の名前を 20150428001224_add_devise_to_users.rb に変えても結果は変わりませんでした。 ------------------ DBは存在していない状態なので、なんとなく 20150528001224_add_devise_to_users.rb(deviseで生成されたファイル) の内容とコンフリクトしているファイルがどこかにありそうだな、と思うのですが、 方向性として間違っていますでしょうか? 回答に必要なファイルなどの開示が出来てないかもしれないですが、 よろしくお願いいたします。
回答: `rake db:reset` ではどうでしょうか? 一度全てDBを削除してから作り直すコマンドです。 データベース内の値が全て消えますので注意してください。