Делаем выборочные BackUp Баз данных
Была задача сделать универсальное средство извлечения отдельных данных из разных типов СУБД. И главное было необходимо обернуть выходные значения в индивидуальный шаблон. Изначально предполагалось вернуть insert запрос, с необходимым синтаксисом. Что бы можно было дальше скормить его разным базам данных. Но в итоге получилось даже больше.
Я думал что напишу скрипт быстро, но застрял на кодировках. Почему возвращаемые массивы все время были не в UTF-8, хотя при подключении четко выставлялась кодировка. Единственное что можно предположить - это кривые драйверы. Существует несколько драйверов для каждой базы, я выбрал те, для которых смог найти путное описание.
Программку я выложил не сколько для производственных целей, сколько для ознакомления. В ней присутствуют подключения к PostGreSql, MySql, SQLite. Так же работа с файлами, чтение конфига, пример класса, вывод времени работы программы.
описание
В группе [Dump №]
задается сам запрос и шаблон вывода, где значение заменяем на %s
. Так же указываем файл вывода и базу данных. Количество данных групп не ограниченно, номера идут от 1, последовательно. Программа распространяется на халяву, при необходимости допилить напильником :-)
возможности
- Выбор данных своим select запросом
- Вывод в файл произвольным шаблоном
- Универсальный Конфигурационный файл
- Выполнения неограниченого количесва запросов из конфига
- Задание для каждого запроса Базы и выходного файла
- Поддержка PostGreSql
- Поддержка MySql
- Поддержка SQLite
Используемые классы
- time
- psyco
- ConfigParser
- sqlite3
- MySQLdb
- pg
- string
- codecs
Для работы приложения необходимы следуюших пакеты
- python
- python-pygresql
- python-mysqldb
- python-psyco