Я работаю над приложением Flask, используя PostgreSQL и SQLAlchemy с psycopg2. Я разрабатываю на Debian bullseye / sid, и у меня есть тестовый веб-сайт, работающий на Ubuntu 18.04.4 LTS. Недавно (и я сожалею, что не могу определить обновление) мне не удалось зафиксировать что-либо в базе данных в оболочке flask на моем локальном компьютере; каждая попытка терпит неудачу с NotNullViolation на идентификаторе таблицы первичного ключа. Раньше с этим всегда справлялись. Ниже приведен пример ошибки:
>>> db.session.commit()
Traceback (most recent call last):
File "[...]DandyLion/.venv/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1283, in _execute_context [...]
sqlalchemy.exc.IntegrityError: (psycopg2.errors.NotNullViolation) null value in column "id" violates not-null constraint
DETAIL: Failing row contains (null, 1, Resolve database id problem, null_id_problem, null, null, 2020-05-28 08:01:00.184953, null, 2020-05-30 17:00:00, [...]).
[SQL: INSERT INTO tasks (user_id, title, slug, [...]) RETURNING tasks.id]
База данных настроена следующим образом:
app.config.from_object(Config)
db = SQLAlchemy(app)
Я признаю незнание деталей реализации, но обратите внимание, что * 1016 Оператор * в трассировке указывает, что необходимо вернуть tasks.id. Так было всегда. на локальной машине. Для дальнейшего исследования, я был бы признателен за любое понимание наиболее вероятной точки отказа. Кто-нибудь может с этим помочь?