2013-04-10 53 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