Используйте API резервного копирования SQLite из Python/SQLAlchemy.
-
21-08-2019 - |
Вопрос
Я использую базу данных SQLite из Python (с SQLАлхимия).Из соображений производительности я хотел бы заполнить базу данных в памяти приложения, а затем создать резервную копию этой базы данных на диске.
SQLite имеет API резервного копирования, который, кажется, сделает это прозрачно.
А АПСВ в документации сказано, что это оборачивает API резервного копирования, но я бы хотел получить доступ к этой функции из стандартного модуля Python sqlite3 или, в лучшем случае, из SQLAlchemy.Это возможно?
Решение
А python-sqlite3-резервное копирование Модуль утверждает, что решает эту проблему.
Другие советы
Диалект APSW также можно довольно легко добавить в SQLAlchemy.Этого было бы очень легко добиться в версии 0.6, которая позволяет нескольким типам адаптеров DBAPI использовать общий диалект для используемой базы данных.
Если pysqlite и apsw связаны с одной и той же библиотекой sqlite, тогда pysqlite может принимать соединения apsw.Видеть:
http://docs.pysqlite.googlecode.com/hg/sqlite3.html#combining-apsw-and-pysqlite
Я постараюсь поработать над этим (и другими) подходами к работе apsw с SQLAlchemy, поскольку они представляют собой очень полезную комбинацию.
Когда я делаю следующее
import sqlite3
dir(sqlite3)
Я не вижу ничего из API резервного копирования методы.
Поэтому ответ — нет;вы не можете получить доступ к API из модуля sqlite3.Похоже, никто это не реализовал.