2013-12-14 4 views
2

Django 프로젝트에서 Scrapy를 사용하고 있습니다.django.db.utils.DatabaseError : 해당 테이블이 없습니다.

내 pipelines.py 파일 내부

, 나는 아무 문제없이 장고에서 모델을 가져올 수 있습니다

from competitions.models import Competition 

내가 성공적으로 경쟁 모델의 속성 목록을 표시 할 수 있습니다

for field_name in Competition._meta.get_all_field_names(): 
    print field_name #>>> OK 

그러나 Competition.objects.get()과 같은 Competition.objects의 모든 메소드는 django.db.utils.DatabaseError: no such table: competitions_competition"

과 같이 나타납니다. 예를 들어, 인스턴스를 얻을려고 : 나는 Saving Django model from Scrapy projectAccess django models inside of Scrapy로부터 가져 오기 작업부터 권장 사항을 적용했습니다

uefa_champ_leagues = Competition.objects.get(code='EUR_C1_2013') 

, 나는 문제가 거기에서 오는 의심한다.

아이디어가 있으십니까?

+0

'syncdb'를 실행 했습니까? 테이블이 데이터베이스에 있습니까? – sha256

+0

"예"와 "예"장고 프로젝트가 수개월 동안 잘 실행되었습니다. 나는 BeautifulSoup 대신에 Scrapy를 테스트하고있다. – Matt

+1

사용자 정의 django admin 명령에서 Scrapy를 사용하는 것은 어떻습니까? https://docs.djangoproject.com/en/dev/howto/custom-management-commands/ – janos

답변

1

python manage.py shell과 같은 환경을 함께 해킹하려고 시도하는 것이 일반적인 실수입니다. 그것은 더럽고 혼동스럽고 OP와 같은 문제를 일으 킵니다. 장고는 데이터베이스 파일의 정확한 위치를 찾지 못하는 것 같습니다. (그리고 당신은 혼자가 아닙니다. 나는 처음부터 실수를 저질렀습니다.) python manage.py yourcommand을 사용하여 Django 사이트에서 작동하는 스크립트 작성을 위해 권장되는 해결책은 create a custom django-admin command입니다.이 스크립트는 python manage.py yourcommand을 사용하여 실행할 수 있습니다. 그것은 깨끗하고 테스트 가능하며 로직은 어쨌든 장고 프로젝트에 속합니다.

관련 문제