2013-08-18 1 views
2

저는 Python, Flask, Peewee ORM을 사용하고 있습니다. 내 DATABASE_URL이 올바르게 설정되었습니다.Heroku : 관계가 없습니다.

로컬 서버에서 기능을 테스트했으며 올바르게 작동합니다. Heroku에 배포하면 Peewee가 내 앱의 if name == main 섹션에 만든 테이블에서 오류가 발생합니다.

오류 :

ProgrammingError: relation "connection" does not exist (connection 
is the name of my model/would-be table). 

업데이트 : 나는 특정 경로 아래에있는 views.py 파일의 테이블을 생성하여 문제를 해결했습니다. 필요한가? 나는 더 깨끗한 방법을 선호한다.

답변

1

나는 Heroku를 한번도 사용해 본 적이 없지만이 모듈이 직접 실행될 때만 실행되는 if __name__ == "__main__" 블록을 우회하는 방법으로 Heroku가 어떤 방식 으로든 앱을 가져 오는 것 같습니다. 당신은 한 번만 여전히 실행됩니다 있도록 before_first_request 핸들러에 그 if 블록에서 논리를 이동하려고하지만,해야한다 (근로자 당/응용 프로그램 인스턴스)

@app.before_first_request 
def initialize(): 
    app.logger.info("Creating the tables we need") 
    ...