【问题标题】:Python bot on Heroku: Integer out of range (SQLAlchemy)Heroku 上的 Python 机器人:整数超出范围(SQLAlchemy)
【发布时间】:2022-01-14 16:19:35
【问题描述】:

我正在使用 Python 机器人模板。

对于 SQLALCHEMY 数据库,我使用的是 Elephant SQL,应用托管在 Heroku 上。

当我尝试运行 Telegram 机器人时,Heroku 上出现以下错误:

 2021-12-09T20:50:06.203420+00:00 app[worker.1]: sqlalchemy.exc.DataError: (psycopg2.errors.NumericValueOutOfRange) integer out of range

2021-12-09T20:50:06.203421+00:00 app[worker.1]: 

2021-12-09T20:50:06.203421+00:00 app[worker.1]: [SQL: INSERT INTO users (user_id, username) VALUES (%(user_id)s, %(username)s)]

2021-12-09T20:50:06.203421+00:00 app[worker.1]: [parameters: {'user_id': 5077702275, 'username': 'Lena_MilizeBot'}]

谁能指出错误?

【问题讨论】:

  • 5077702275 对于列类型来说是一个很大的值。最好的猜测是该列定义为integerselect 5077702275::int; ERROR: integer out of range。将列类型更改为 bigint 或将值保持在此处指定的范围内 Numeric types
  • @Adrian Klaver 我编辑了它,但它不起作用:(
  • 编辑了什么以及如何编辑?定义“不起作用”?包括错误消息。如果您想得到答案,您需要提供有关您正在做什么的详细信息,因为我们不会在您的肩膀上查看。添加答案以更新您的问题。

标签: python postgresql heroku sqlalchemy telegram


【解决方案1】:

必须用 BigInteger 替换 int 并且它起作用了。正如 cmets 中的 Adrian 正确指出的那样,我们需要对 Postgresql 使用“Bigint”。但是,对于 SQLALCHEMY,值是 BigInteger。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-03
    • 1970-01-01
    • 2020-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多