2014-02-05 3 views
0

터미널에서 오류가 발생했습니다. 뭐가 잘못 되었 니?

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 NOT NULL, "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, 
    "updated_at" datetime) 
/Users/danieljuzovitskij/.rvm/gems/ruby-2.0.0-p353/gems/sqlite3-1.3.8/lib/sqlite3/database.rb:91:in `initialize' 
/Users/danieljuzovitskij/.rvm/gems/ruby-2.0.0-p353/gems/sqlite3-1.3.8/lib/sqlite3/database.rb:91:in `new' 
/Users/danieljuzovitskij/.rvm/gems/ruby-2.0.0-p353/gems/sqlite3-1.3.8/lib/sqlite3/database.rb:91:in `prepare' 
/Users/danieljuzovitskij/.rvm/gems/ruby-2.0.0-p353/gems/sqlite3-1.3.8/lib/sqlite3/database.rb:134:in `execute' 
/Users/danieljuzovitskij/.rvm/gems/ruby-2.0.0-p353/gems/activerecord-4.0.2/lib/active_record/connection_adapters/sqlite3_adapter.rb:331:in `block in execute' 
/Users/danieljuzovitskij/.rvm/gems/ruby-2.0.0-p353/gems/activerecord-4.0.2/lib/active_record/connection_adapters/abstract_adapter.rb:435:in `block in log' 
/Users/danieljuzovitskij/.rvm/gems/ruby-2.0.0-p353/gems/activesupport-4.0.2/lib/active_support/notifications/instrumenter.rb:20:in > `instrument' 
/Users/danieljuzovitskij/.rvm/gems/ruby-2.0.0-p353/gems/activerecord-4.0.2/lib/active_record/connection_adapters/abstract_adapter.rb:430:in `log' 
/Users/danieljuzovitskij/.rvm/gems/ruby-2.0.0-p353/gems/activerecord-4.0.2/lib/active_record/connection_adapters/sqlite3_adapter.rb:331:in `execute' 
/Users/danieljuzovitskij/.rvm/gems/ruby-2.0.0-p353/gems/activerecord-4.0.2/lib/active_record/connection_adapters/abstract/schema_statements.rb:190:in `create_table' 
/Users/danieljuzovitskij/.rvm/gems/ruby-2.0.0-p353/gems/activerecord-4.0.2/lib/active_record/migration.rb:625:in `block in method_missing' 
/Users/danieljuzovitskij/.rvm/gems/ruby-2.0.0-p353/gems/activerecord-4.0.2/lib/active_record/migration.rb:597:in `block in say_with_time' 
/Users/danieljuzovitskij/.rvm/gems/ruby-2.0.0-p353/gems/activerecord-4.0.2/lib/active_record/migration.rb:597:in `say_with_time' 
/Users/danieljuzovitskij/.rvm/gems/ruby-2.0.0-p353/gems/activerecord-4.0.2/lib/active_record/migration.rb:617:in `method_missing' 
/Users/danieljuzovitskij/Desktop/pinteresting/db/migrate/20140205151417_devise_create_users.rb:3:in `change' 
/Users/danieljuzovitskij/.rvm/gems/ruby-2.0.0-p353/gems/activerecord-4.0.2/lib/active_record/migration.rb:571:in `exec_migration' 
/Users/danieljuzovitskij/.rvm/gems/ruby-2.0.0-p353/gems/activerecord-4.0.2/lib/active_record/migration.rb:555:in `block (2 levels) in migrate' 
/Users/danieljuzovitskij/.rvm/gems/ruby-2.0.0-p353/gems/activerecord-4.0.2/lib/active_record/migration.rb:554:in `block in migrate' 
/Users/danieljuzovitskij/.rvm/gems/ruby-2.0.0-p353/gems/activerecord-4.0.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:294:in `with_connection' 
/Users/danieljuzovitskij/.rvm/gems/ruby-2.0.0-p353/gems/activerecord-4.0.2/lib/active_record/migration.rb:553:in `migrate' 
/Users/danieljuzovitskij/.rvm/gems/ruby-2.0.0-p353/gems/activerecord-4.0.2/lib/active_record/migration.rb:709:in `migrate' 
/Users/danieljuzovitskij/.rvm/gems/ruby-2.0.0-p353/gems/activerecord-4.0.2/lib/active_record/migration.rb:959:in `block in execute_migration_in_transaction' 
/Users/danieljuzovitskij/.rvm/gems/ruby-2.0.0-p353/gems/activerecord-4.0.2/lib/active_record/migration.rb:1005:in `block in ddl_transaction' 
/Users/danieljuzovitskij/.rvm/gems/ruby-2.0.0-p353/gems/activerecord-4.0.2/lib/active_record/connection_adapters/abstract/database_statements.rb:202:in `block in transaction' 
/Users/danieljuzovitskij/.rvm/gems/ruby-2.0.0-p353/gems/activerecord-4.0.2/lib/active_record/connection_adapters/abstract/database_statements.rb:210:in `within_new_transaction' 
/Users/danieljuzovitskij/.rvm/gems/ruby-2.0.0-p353/gems/activerecord-4.0.2/lib/active_record/connection_adapters/abstract/database_statements.rb:202:in `transaction' 
/Users/danieljuzovitskij/.rvm/gems/ruby-2.0.0-p353/gems/activerecord-4.0.2/lib/active_record/transactions.rb:209:in `transaction' 
/Users/danieljuzovitskij/.rvm/gems/ruby-2.0.0-p353/gems/activerecord-4.0.2/lib/active_record/migration.rb:1005:in `ddl_transaction' 
/Users/danieljuzovitskij/.rvm/gems/ruby-2.0.0-p353/gems/activerecord-4.0.2/lib/active_record/migration.rb:958:in `execute_migration_in_transaction' 
/Users/danieljuzovitskij/.rvm/gems/ruby-2.0.0-p353/gems/activerecord-4.0.2/lib/active_record/migration.rb:920:in `block in migrate' 
/Users/danieljuzovitskij/.rvm/gems/ruby-2.0.0-p353/gems/activerecord-4.0.2/lib/active_record/migration.rb:916:in `each' 
/Users/danieljuzovitskij/.rvm/gems/ruby-2.0.0-p353/gems/activerecord-4.0.2/lib/active_record/migration.rb:916:in `migrate' 
/Users/danieljuzovitskij/.rvm/gems/ruby-2.0.0-p353/gems/activerecord-4.0.2/lib/active_record/migration.rb:764:in `up' 
/Users/danieljuzovitskij/.rvm/gems/ruby-2.0.0-p353/gems/activerecord-4.0.2/lib/active_record/migration.rb:742:in `migrate' 
/Users/danieljuzovitskij/.rvm/gems/ruby-2.0.0-p353/gems/activerecord-4.0.2/lib/active_record/railties/databases.rake:42:in `block (2 levels) in <top (required)>' 
Tasks: TOP => db:migrate (See > full trace by running task with --trace) 
------------------------------------------------------------------------ 
+1

표가 이미 생성 된 것처럼 보입니다. 'db/scheme.rb' 파일을 확인하고 User 테이블이 있는지 확인하십시오. –

+1

이미'users' 테이블이있는 것 같습니다. 그것을 버리고 다시 시도하십시오. –

답변

0

마이그레이션이 데이터베이스와 동기화되지 않은 것처럼 보입니다. 이것이 dev 환경 인 경우, 다음의 레이크 태스크의 실행을 추천합니다.

rake db:drop 
rake db:create 
rake db:migrate 
+0

감사합니다! 그것은 효과가 있었다. – Danju

0

sqlite3를이 ::되는 SQLException는 : 테이블 "사용자는"이미 존재합니다

그 오류는 "사용자"테이블이 이미 생성 된 것을 의미한다. 테이블을 h 제하거나 나중의 이주가이를 재 작성하려고 시도하지 않는지 확인하십시오.

0

실패한 마이그레이션은 DeviseCreateUsers입니다. this.을 확인하는 것이 좋습니다. 이미 생성 된 사용자 모델에 Devise를 추가하는 방법입니다.

실패한 마이그레이션 작성과 같은 마지막 변경 사항을 롤백하고이를 수행하는 것이 좋습니다. 일관성을 위해서 :

rails g devise user 

테이블을 이미 생성했는지 확인하고 추가가 필요한지 확인하십시오.

0

사용 힘 :

create_table :users, force: true do |t| 
// your contents 
end 

사실 그것은 테이블을 기존 삭제하고 새로 만듭니다.

+0

@ user2167127이 (가) 당신을 위해 일하고 있습니까? – sunil

관련 문제