У меня есть список из 3 932 841 словаря для ввода в мою таблицу Postgres с помощью Flask-SQLAlchemy. В этом списке словарей я использую метод session.bulk_insert_mappings для массовой вставки этих записей, например так:

db.session.bulk_insert_mappings(
    ModelObject, list_of_dictionaries_to_add
)
db.session.commit()

Пример того, как выглядит этот список (обратите внимание, что некоторые поля по умолчанию определены в таблице, сопоставленной с ModelObject):

list_of_dictionaries_to_add = [{
    "transaction_id": 334,
    "closing_transaction": False
}, {
    "transaction_id": 335,
    "closing_transaction": True
}]

Эта операция завершается с ошибкой, и в мой журнал stdout выводится только следующая ошибка:

LOG: неожиданный EOF при клиентском соединении с открытой транзакцией

Интересно отметить, что когда этот список содержит намного меньше записей (проверено с 500), он вставляет. Это заставляет меня думать, что это проблема времени ожидания.

Как я могу отладить это?

0
Jason Strimpel