Альтернатива Connection.iterdump для SQLite в Python? - PullRequest
1 голос
/ 28 октября 2010

Я нашел функцию, которая поможет мне загрузить дисковую базу данных SQLite в базу данных памяти, но обнаружил, что нужный мне модуль, apsw, не поддерживает его, в то время как pysqlite поддерживает. Мне нужен apsw, потому что он имеет большинство функций, которые мне нужны, а pysqlite - нет. Есть ли обходной путь для полного копирования в базу данных?

Ответы [ 2 ]

2 голосов
/ 01 ноября 2010

Как указывало сингулярность, APSW предоставляет встроенную в SQLite функциональность резервного копирования.

Причина, по которой вы не можете продолжать использовать курсоры (на практике базовые скомпилированные операторы SQLite), заключается в том, что схема базы данных потенциально завершенаизменилось, поскольку вы перезаписали его резервной копией.Вы можете использовать методы close для принудительного закрытия элементов.

По некоторым причинам многие разработчики, похоже, считают курсоры ценным товаром и пытаются использовать их повторно и держать их при каждом удобном случае.Сами курсоры очень легкие, чуть более «тяжелые», чем целые числа Python.Базовые скомпилированные операторы SQLite являются более тяжелыми, но на уровне объектов Python они переключаются для каждого выполняемого оператора.(т. е. курсор APSW указывает на выполняемый в настоящий момент скомпилированный оператор SQLite.)

КСТАТИ APSW также включает возможность выгрузки базы данных.Вы можете использовать класс оболочки, чтобы выполнить работу за вас.

http://apidoc.apsw.googlecode.com/hg/shell.html#shell-class

Раскрытие информации: я являюсь автором APSW.

0 голосов
/ 28 октября 2010

Проверьте функцию connection.backup ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...