Бот Python на Heroku: целое число вне диапазона (SQLAlchemy)

#python #postgresql #heroku #sqlalchemy #telegram

#python #postgresql #heroku #sqlalchemy #telegram

Вопрос:

Я использую шаблон бота на 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'}]
 

Может кто-нибудь указать на ошибку?

Комментарии:

1. 5077702275 является большим значением для типа столбца. Лучше всего предположить, что столбец определяется как integer и select 5077702275::int; ERROR: integer out of range . Либо измените тип столбца на bigint или сохраните значения в диапазоне, указанном здесь Числовые типы

2. @Adrian Klaver Я отредактировал его, но это не сработало: (

3. Что и как редактировалось? Определить «не сработало»? Включить сообщения об ошибках. Если вы хотите получить ответ, вам необходимо предоставить подробную информацию о том, что вы делаете, поскольку мы не заглядываем вам через плечо. Добавьте ответ в качестве обновления к вашему вопросу.

Ответ №1:

Пришлось заменить int на BigInteger, и это сработало. Как справедливо указал Адриан в комментариях, нам нужно использовать «Bigint» для Postgresql. Однако для SQLALCHEMY значение равно BigInteger .