2013-04-10 60 views
0

我在Rails 3.2.12中加入了我的web应用程序。我跑了一个成功的$ rails generate devise:install$ rails generate devise User如何删除Devise表运行'rake db:migrate'?

这是我所得到的,当我运行$ rake routes

  new_user_session GET /users/sign_in(.:format)  devise/sessions#new 
      user_session POST /users/sign_in(.:format)  devise/sessions#create 
    destroy_user_session DELETE /users/sign_out(.:format)  devise/sessions#destroy 
      user_password POST /users/password(.:format)  devise/passwords#create 
     new_user_password GET /users/password/new(.:format) devise/passwords#new 
     edit_user_password GET /users/password/edit(.:format) devise/passwords#edit 
          PUT /users/password(.:format)  devise/passwords#update 
cancel_user_registration GET /users/cancel(.:format)  devise/registrations#cancel 
     user_registration POST /users(.:format)    devise/registrations#create 
    new_user_registration GET /users/sign_up(.:format)  devise/registrations#new 
    edit_user_registration GET /users/edit(.:format)   devise/registrations#edit 
          PUT /users(.:format)    devise/registrations#update 
          DELETE /users(.:format)    devise/registrations#destroy 
        root  /       pages#home 
        about GET /about(.:format)    pages#about 

当我尝试运行rake db:migrate,我得到以下错误

== DeviseCreateUsers: migrating ============================================== 
-- create_table(:users) 
rake aborted! 
An error has occurred, this and all later migrations canceled: 

SQLite3::SQLException: table "users" already exists: CREATE TABLE "users" ("id" INTEGER PRIMARY  KEY AUTOINCREMENT NOT NULL, "email" varchar(255) DEFAULT '' NOT NULL, "encrypted_password" varchar(255) DEFAULT '' NOT NULL, "reset_password_token" varchar(255), "reset_password_sent_at" datetime, "remember_created_at" datetime, "sign_in_count" integer DEFAULT 0, "current_sign_in_at" datetime, "last_sign_in_at" datetime, "current_sign_in_ip" varchar(255), "last_sign_in_ip" varchar(255), "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL) /Users/andyHuynh/.rvm/gems/ruby-1.9.3-p327/gems/sqlite3-1.3.7/lib/sqlite3/database.rb:91:in `initialize' 

它告诉我,我有一个'用户的表已经。如果是这样的话,这个sql表在哪里?预先感谢任何帮助!

回答

2

我会看你以前的迁移,看看是否有人创建了一个users表。如果是这样,也许删除该迁移。无论如何,我会进入你的rails dbconsole并手动删除users表,然后再运行rake db:migrate

+0

我把用户表放到dbconsole中,它工作正常!你摇滚@jason – andy4thehuynh 2013-04-10 21:28:23

+0

谢谢。很高兴听到它的工作。 – 2013-04-10 21:30:40

+0

我仍然会检查旧的迁移。由于您有多个迁移尝试创建同一个表,您不希望处于无法返回并运行所有迁移的情况。 – 2013-04-10 21:31:40