2

我正在使用 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 文件中创建表来解决问题。这是必要的吗?我更喜欢更清洁的方式。

4

1 回答 1

1

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

@app.before_first_request
def initialize():
    app.logger.info("Creating the tables we need")
    ...
于 2013-08-19T18:24:52.800 回答