Heroku:关系不存在

时间:2013-08-18 22:06:31

标签: python heroku flask peewee

我正在使用Python,Flask和Peewee ORM。我的DATABASE_URL设置正确。

我已在本地服务器上测试了该功能,但它可以正常工作。当我部署到Heroku时,它在Peewee在我的应用程序的if name == main部分创建的表上出错。

错误是:

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

更新:我通过在特定路由下的views.py文件中创建表来解决问题。这有必要吗?我更喜欢更清洁的方式。

1 个答案:

答案 0 :(得分:1)

我从未使用过Heroku,但我猜测Heroku正以某种方式导入你的应用程序,绕过if __name__ == "__main__"块,该块仅在直接运行此模块时运行。您应该尝试将逻辑从if块移动到before_first_request处理程序,以便它仍然可以运行,但只运行一次(每个worker / app实例)

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