Для регрессионного тестирования мне нужно сбросить все содержимое базы данных SQLite в текстовый файл. Но все ссылки на такого рода деятельность ведут только к руководствам, использующим исполняемый файл sqlite. Есть ли способ в Perl сделать это без исполняемого файла?
Как сбросить содержимое базы данных SQLite без использования командной строки, но в коде Perl?
Ответы (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