2012-08-02 8 views
1

은 현재 레일스 프로젝트에서 작업 중입니다. 난 레일 서버를 시작하려고하면 다음 오류 던지고 :Ruby on Rails - 서버를 실행하는 중에 오류가 발생했습니다.

=> Booting WEBrick 
=> Rails 3.1.3 application starting in development on http://0.0.0.0:3000 
=> Call with -d to detach 
=> Ctrl-C to shutdown server 
Exiting 
/var/lib/gems/1.9.1/gems/activerecord-3.1.3/lib/active_record/connection_adapters  
/sqlite_adapter.rb:439:in `table_structure': Could not find table 'dbrick' 
(ActiveRecord::StatementInvalid) 

내 테이블 이름은 'dbrick'입니다. 나는 또한 rake db : drop과 rake db : mirgrate를 시도했다. 마이그레이션 할 때의 다음과 같은 오류를 던지고 :

rake aborted! 
Could not find table 'dbrick' 

Tasks: TOP => db:migrate => environment 
(See full trace by running task with --trace) 

이 내 마이그레이션 파일입니다

class CreateDbricks < ActiveRecord::Migration 
def self.up 
    create_table :dbricks do |t| 
    t.text :description 
    t.string :video 
    t.string :video_html 
    t.string :image_id 
    t.string :option_id 
    t.boolean :choice 
    t.string :reach 
    t.integer :category_id 
    t.string :user_id 
    t.datetime :deleted_at 

    t.timestamps 
    end 
end 

def self.down 
    drop_table :dbricks 
end 
end 

그것은 어떤 일이 밖으로 나를 도와 주면 훨씬 가득 도움이 될 것입니다. 미리 감사드립니다.

+0

'rake db : schema : load'을 시도해보십시오. – Trip

+0

당신은 오타가 있습니다 : migration은'dbricks'를 생성하지만, 코드는'dbrick' 테이블을 사용하려고 시도합니다. (복수형 vs 단수형) –

+0

답장을 보내 주셔서 감사합니다. 나중에 나는 rake db : schema : load를 시도했지만 rake aborted와 같은 에러를 준다! 'dbrick'테이블을 찾을 수 없습니다 작업 : TOP => db : migrate => 환경 (--trace를 사용하여 작업을 실행하여 전체 추적 참조) – Abhiram

답변

0

나는 시도 할 것이다 :

rake db:schema:load 

가 (이에게 나는 그것의 당신의 DB에 대한 오류를 찾는 생각) 스키마를로드합니다. 이것이 실패하면

, 나는 수동으로, 당신의 dbrick을 만들어 마이그레이션을 찾을 파일의 이름을 찾아이를 생산하기 위해 파일 이름에 번호를 복사하여 붙여 넣을 것 : 오류

rake db:migrate:down VERSION=123412341234 # <-- where the number is the number you pasted 

봐. 때로는 한 가지가 이미 존재하거나 아직 존재하지 않으며 마이그레이션이 모든 방식으로 실행되지 못하며 결과적으로 오류의 원인이 될 수 있습니다. 성공적으로하지 않는 경우, 당신은 당신의 광부 헬멧에 넣어해야합니다

rake db:migrate:up VERSION=123412341234 # <-- where the number is the number you pasted 

과 함께 손을 더럽힐 : 성공적으로가는 경우까지를 다시 긁어

rails dbconsole 

당신을 당신의 데이터베이스로 데려 올 것이고, 당신은 마이그레이션이 일어나지 못하게하는 모든 테이블/컬럼을 수동으로 삭제해야 할 것입니다. 문제가 해결되면 rake db:migrate:up!

+0

고마워요......... 당신의 대답은 나를 많이 도왔습니다. .. 감사합니다. – Abhiram

+0

굉장! 해결책은 무엇입니까? upvotes를 포기하고 그것의 가치가 있다면 대답을 올바른 것으로 설정하는 것을 잊지 마십시오. – Trip

+0

방금 ​​rake db : migrate down 및 db : migrate up .. 그 덕분에 많은 도움을 받았습니다 – Abhiram

0

데이터베이스를 마이그레이션 했습니까? (- 당신이 당신의 DB에서 데이터의 손실에 대해 걱정하지 않는 경우에 그것을 너무 조심,이 모든 데이터를 삭제),

rake db:drop 

이 데이터베이스를 삭제합니다 당신이있는 경우 rake db:migrate

, 당신의 데이터베이스를 삭제 및 귀하의 스키마. 그런 다음

rake db:migrate 

이렇게하면 스키마가 다시 마이그레이션됩니다.

+0

답장을 보내 주셔서 감사합니다. 예. 나는 떨어 뜨리고 당신이 말한대로 이주했습니다. 그러나 이주하는 동안 오류가 발생합니다. '레이크가 중단되었습니다! 'dbrick'테이블을 찾을 수 없습니다. 작업 : TOP => db : migrate => 환경 (--trace로 작업을 실행하여 전체 추적 참조) ' – Abhiram

+0

@Abhiram thats weird. 어쩌면 마이그레이션 중 하나가 dbrick 작성 마이그레이션이 작성되기 전에 dbrick 테이블을 사용하여 작업을 수행하고있을 수도 있습니다. – Karan