Как отслеживать изменения данных бд (SQLite) в python-проекте?

Я пишу программу на python используя PyQt6 и SQLite. Мне надо получать уведомления от бд каждый раз, когда в таблицах происходят изменения. Я пробовал делать следующее:

from PyQt6.QtSql import QSqlDatabase

db: QSqlDatabase = QSqlDatabase.addDatabase('QSQLITE', 'ConnectionName')
db.setDatabaseName('DatabaseName')
db.open()
db.driver().subscribeToNotification('TableName')

, но всё, что я получаю - это имя таблицы, сообщение о том, что источник уведомления неизвестен и число (похоже, что это rowid). Во-первых, я бы хотел узнать, действительно ли возвращаемое число является rowid? Во-вторых, я бы хотел получать ещё тип операции: insert, update или delete. Есть ли возможность получать через PyQt6.QtSql уведомления от SQLite об изменении данных, содержащие тип операции? Если нет, то можно ли это реализовать через библиотеку sqlite3?

UPD Как я понял, реализовать уведомления через встроенную библиотеку sqlite3 нельзя, но есть другие библиотеки, через которые можно. Тем не менее, мне бы очень хотелось сделать это через PyQt. У Qt есть встроенный драйвер для SQLite, поддерживающий уведомления. А ещё Qt позволяет создавать свои драйверы. Предполагаю, что можно добавить во встроенный драйвер получение типа производимых операций или написать свой драйвер с использованием одной из поддерживающих уведомления библиотек. Это реализуемо, как считаете?


Ответы (1 шт):

Автор решения: Andrey Mihaylov

Как вариант перевести взаимодействие с БД на ORM, к примеру у SQLAlchemy имеется возможность отлавливать события связанные с БД: https://docs.sqlalchemy.org/en/20/orm/events.html

→ Ссылка