Как сбросить содержимое базы данных SQLite без использования командной строки, но в коде Perl?

Для регрессионного тестирования мне нужно сбросить все содержимое базы данных SQLite в текстовый файл. Но все ссылки на такого рода деятельность ведут только к руководствам, использующим исполняемый файл sqlite. Есть ли способ в Perl сделать это без исполняемого файла?


person Mithaldu    schedule 24.11.2010    source источник


Ответы (2)


Вы можете использовать стандартные методы DBI для запроса схемы. Справочная страница DBD:: SQLite говорит:

См. также документацию DBI для получения подробной информации о других распространенных методах.

table_info

 $sth = $dbh->table_info(undef, $schema, $table, $type, \%attr);

Возвращает все таблицы и схемы (базы данных), как указано в "table_info" в DBI. Аргументы схемы и таблицы будут выполнять поиск «LIKE». Вы можете указать символ ESCAPE, включив атрибут «Escape» в \%attr. Аргумент $type принимает разделенный запятыми список следующих типов:
«TABLE», «VIEW», «LOCAL TEMPORARY» и «SYSTEM TABLE» (по умолчанию возвращаются все). Обратите внимание, что возвращается дескриптор оператора, а не прямой
список таблиц.

person jira    schedule 24.11.2010

Один из вариантов — украсть реализацию .dump из исходного кода программы sqlite.

person Marcelo Cantos    schedule 24.11.2010