質問内容
devise導入中に下記のエラーが出ました。
gemをbundle installしたのち、rails g devise:installを実行。
その後、rails g devise userを実行したのち、rake db:migrateを実行した時に発現したエラーです。
解決策を教示いただきたいです。。。。。
エラーメッセージ
rake aborted!
StandardError: An error has occurred, all later migrations canceled:
Mysql2::Error: Table 'freemarket_sample_50c_development.users' doesn't exist: ALTER TABLE
users
ADD
/projects/freemarket_sample_50c/db/migrate/20191002055101_add_devise_to_users.rb:7:in block in up' /projects/freemarket_sample_50c/db/migrate/20191002055101_add_devise_to_users.rb:5:in
up'
Caused by:
ActiveRecord::StatementInvalid: Mysql2::Error: Table 'freemarket_sample_50c_development.users' doesn't exist: ALTER TABLE users
ADD email
varchar(255) DEFAULT '' NOT NULL
/projects/freemarket_sample_50c/db/migrate/20191002055101_add_devise_to_users.rb:7:in block in up' /projects/freemarket_sample_50c/db/migrate/20191002055101_add_devise_to_users.rb:5:in
up'
Caused by:
Mysql2::Error: Table 'freemarket_sample_50c_development.users' doesn't exist
/projects/freemarket_sample_50c/db/migrate/20191002055101_add_devise_to_users.rb:7:in block in up' /projects/freemarket_sample_50c/db/migrate/20191002055101_add_devise_to_users.rb:5:in
up'
Tasks: TOP => db:migrate
20191002055101_add_devise_to_users.rb
# frozen_string_literal: true class AddDeviseToUsers < ActiveRecord::Migration[5.2] def self.up change_table :users do |t| ## Database authenticatable t.string :email, null: false, default: "" t.string :encrypted_password, null: false, default: "" ## Recoverable t.string :reset_password_token t.datetime :reset_password_sent_at ## Rememberable t.datetime :remember_created_at ## Trackable # t.integer :sign_in_count, default: 0, null: false # t.datetime :current_sign_in_at # t.datetime :last_sign_in_at # t.string :current_sign_in_ip # t.string :last_sign_in_ip ## Confirmable # t.string :confirmation_token # t.datetime :confirmed_at # t.datetime :confirmation_sent_at # t.string :unconfirmed_email # Only if using reconfirmable ## Lockable # t.integer :failed_attempts, default: 0, null: false # Only if lock strategy is :failed_attempts # t.string :unlock_token # Only if unlock strategy is :email or :both # t.datetime :locked_at # Uncomment below if timestamps were not included in your original model. # t.timestamps null: false end add_index :users, :email, unique: true add_index :users, :reset_password_token, unique: true # add_index :users, :confirmation_token, unique: true # add_index :users, :unlock_token, unique: true end def self.down # By default, we don't want to make any assumption about how to roll back a migration when your # model already existed. Please edit below which fields you would like to remove in this migration. raise ActiveRecord::IrreversibleMigration end end
試したこと
rake db:reset → 再度 rake db:migrate