Собственная документация aiosqlite крайне минимальна, поэтому я был бы признателен за помощь экспертов.
У меня есть проект клиента чата, а серверная часть находится на Python/FastAPI, причем все соответствующие вызовы являются асинхронными определениями, а последующие вызовы между модулями используют async/await.
Мне нужно использовать sqlite в качестве серверной части хранилища, что требует использования aiosqlite.
Мне нужно убедиться, что все транзакции записи сериализованы; sqlite, насколько я понимаю, не умеет параллельную запись должным образом. Итак, если одна сопрограмма (насколько я понимаю, это не совсем потоки с асинхронностью?) пишет, другой придется ждать, пока эта запись не завершится. («Не масштабируется» не имеет значения, позже сделаю версию для Postgres). Или sqlite действительно теперь нормально выполняет параллельные независимые транзакции записи?
И, конечно, мне также нужно обеспечить атомарные транзакции записи, чтобы в случае сбоя транзакция была откатана.
Как мне это сделать с aiosqlite? Создавать новое соединение для каждой транзакции или сохранять общее соединение? Вызовите какое-то явное «начало» перед началом записи или нет? Выполнить фиксацию/откат явным образом или ожидать автоматической фиксации при выходе из области действия/отката при исключении отмены обработки?
Подробнее здесь: https://stackoverflow.com/questions/797 ... ansactions