Задать вопрос
nnikolyaa
@nnikolyaa

Как закрыть все действующие соединения в sqlite3?

Каким образом можно закрыть ВСЕ соединения. Не единичное, а все соединения.
Нашёл с django, но она не работает.

from django import db
db.connections.close_all()
  • Вопрос задан
  • 771 просмотр
Подписаться 1 Средний Комментировать
Решения вопроса 1
shurshur
@shurshur
Сисадмин, просто сисадмин...
Указанный код с django работает потому что django имеет сведения обо всех открытых средствами django коннектах и может их закрыть.

При прямом открытии баз, конечно же, никуда сведения о них не складываются. Чтобы получить подобное своими силами, можно при каждом открытии sqlite-базы класть коннект в list, а в нужный момент перебрать его и закрыть всё:

db_connections = []

db1 = sqlite3.connect('baza1.db')
db_connections.append(db1)
db2 = sqlite3.connect('area51.db')
db_connections.append(db2)

...

for db in db_connections:
  db.close()


PS: Некоторое время назад я написал скрипт, который генерирует sqlite-файлы пачками (кэш для САС.Планеты), и там есть специальный класс, который открывает новые файлы и закрывает лишние при достижении некоторого лимита: https://github.com/shurshur/tms2sqlite/blob/master...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
от 200 000 до 300 000 ₽
Greenway Global Новосибирск
от 150 000 ₽
Akronix Санкт-Петербург
от 150 000 до 200 000 ₽
02 февр. 2025, в 19:21
500 руб./за проект
02 февр. 2025, в 19:02
50000 руб./за проект
02 февр. 2025, в 18:10
3000 руб./за проект