Найти - Пользователи
Полная версия: При использовании sqlalchemy + sqlite временные файлы не удаляются.
Начало » Базы данных » При использовании sqlalchemy + sqlite временные файлы не удаляются.
1
udav
Использую QtCore.QTemporaryFile для создания файла, в котором создается БД sqlite. Для работы с БД использую sqlalchemy, но после завершения программы временный файл не удаляется с диска, при попытке удалить “вручную” с помощью os.remove(flName) выдает ошибку “Файл занят другим процессом”
Возможно sqlalchemy не освобождает какие-то ресурсы, несмотря на
session.connection().close()
session.close_all()
Кто - нибудь может подсказать где что-то не так?
Windows XP
roku151
убей все процессы python в диспетчере задач.
udav
roku151
убей все процессы python в диспетчере задач.
Конечному пользователю вряд ли понравится такое решение.
А как это сделать в самой программе?
roku151
может стоит создавать бд в памяти.
# in-memory database
e = create_engine('sqlite://')
udav
roku151
а зачем конечному пользователю нужно будет удалять дб?)
может стоит создавать бд в памяти?
БД создается во временном файле, чтобы в случае аварийного завершения программы - отключения электричества, зависания системы, при следующем запуске программы можно было восстановить данные.
При нормальном завершении программы, данные переносятся в обычный файл, а временный должен
удаляться.
roku151
from sqlalchemy.pool import NullPool
to_engine = create_engine('sqlite:///%s' % temp_file_name, poolclass=NullPool)
udav
Спасибо - заработало!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB