Python peewee ORM 错误:“没有这样的表:任务”

问题描述 投票:0回答:1

我正在与 python 中的 peewee 作斗争。我的项目配置是Python + pyTelegramBotAPI + Sqlite3 + peewee。我的电报机器人是任务管理器(学习项目)。这是我获取可用任务的代码:

def get_most_recent_tasks(page: int) -> list:
    offset = (3 * page) - 3

    query = TaskModel.select().order_by(TaskModel.creation_date.desc()).limit(3).offset(offset)
    most_recent_tasks = query.execute()
    print(most_recent_tasks)

这是我收到的错误:

most_recent_tasks = query.execute()
                        ^^^^^^^^^^^^^^^
peewee.OperationalError: no such table: Tasks

任何帮助表示赞赏。

python python-3.x orm peewee py-telegram-bot-api
1个回答
0
投票

如果您尚未创建该表,则可能需要创建该表。您可以编写如下代码:

db.create_tables([TaskModel, ...])

不过,问题很可能是您指定了数据库文件的相对路径,例如:

db = SqliteDatabase('filename.db')

该路径相对于您当前的工作目录,并且根据您运行机器人的方式,它可能会发生变化。更好的选择是指定完整/绝对路径:

import os
curdir = os.path.dirname(os.path.realpath(__file__))  # Current dir of module.
db = SqliteDatabase(os.path.join(curdir, 'filename.db'))
© www.soinside.com 2019 - 2024. All rights reserved.