2012-06-09 10 views
0

저는 Rails에 비교적 익숙하며 Devise를 설정하는 중에 문제가 발생합니다. 나는이 문제가 Devise를 설치하기 전에 이미 사용자 비계를 생성했지만이 문제를 해결하는 방법을 모르겠다는 사실에서 기인한다고 생각합니다. 내가 고안 설정을 통해 시험을 할 때, 나는 다음과 같은 코드를 입력해야하는 단계에 도착 :Devise 설정 중 마이그레이션 중 오류가 발생했습니다.

rails generate devise User 

작동하고, 나는 터미널에서이 돌아 오기 :

invoke active_record 
    create db/migrate/20120609032448_add_devise_to_users.rb 
    insert app/models/user.rb 
    route devise_for :users 

다음 단계를 내가 시도 할 데이터베이스를 마이그레이션하지만 다음 오류 얻을 것입니다 : 나는 원래 사용자 마이그레이션과 함께 원래 사용자의 발판을 파괴 시도했습니다

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

SQLite3::SQLException: duplicate column name: email: ALTER TABLE "users" ADD "email"   varchar(255) DEFAULT '' NOT NULL 

Tasks: TOP => db:migrate 

을하지만 난이 ERR에 갇히지 유지 또는. 도움을 많이 주시면 감사하겠습니다!

답변

3

새 마이그레이션에는 아마도 email 열이 정의되어있을 것입니다. email 열을 추가하는 것과 관련된 행을 주석 처리하고 다시 실행하십시오. 모델에 이미 이메일 열이있는 것 같습니다.

0

이 파일

db/migrate/20120609032448_add_devise_to_users.rb 

에 그것은 당신이 새로운 오류를 변경 할 때

change_table(:users)... 

create_table(:users)... 
+0

이 변경 말한다 코드에가는보십시오 : sqlite3를 : : SQLException : 테이블 "users"가 이미 존재합니다 : CREATE TABLE "users"("id"INTEGER PRIMARY KEY AUTOINCREMENT NULL이 아닌 경우 "email"varchar DEFAULT 'NOT NUL L, "encrypted_password"varchar DEFAULT ''NOT NULL, "reset_password_token"varchar, "reset_password_sent_at"datetime, remember_created_at "datetime,"sign_in_count "정수 DEFAULT 0 NOT NULL,"current_sign_in_at "datetime,"last_sign_in_at "datetime,"current_sign_in_ip "varchar , "last_sign_in_ip"varchar) /Library/Ruby/Gems/2.0.0/gems/sqlite3-1.3.10/lib/sqlite3/database.rb:91:in'초기화 ' – BeC

관련 문제