Утилита для командной строки, позволяющая сконвертировать схему, данные и ключи БД ФИАС и ГАР в SQL-файл, готовый для импорта в MySQL и/или PostgreSQL базу.
Благодаря SAX парсеру потребляет небольшое количество ресурсов (не более 50 мб памяти).
Для начала необходимо скачать актуальную XSD схему и последнюю XML выгрузку с данными ФИАС, распаковать их в одну папку и запустить команду.
Все нужные файлы можно скачать с сайта-источника ФНС России https://fias.nalog.ru/Updates.aspx
Для автоматицации выгрузки и распаковки архива, можно воспользоваться shell-скриптом: download_schemas.sh
Требуется установленный Python 3.6
$ git clone https://github.com/shadz3rg/ru_address.git && cd ru_address && python setup.py install
Установка пакета дает доступ к исполняемому файлу ru_address.
$ ru_address --help
Usage: ru_address [OPTIONS] SOURCE_PATH OUTPUT_PATH
Подготавливает БД ФИАС для использования с SQL. XSD файлы и XML выгрузку
можно получить на сайте ФНС https://fias.nalog.ru/Updates.aspx
Для автоматицации выгрузки, можно воспользоваться shell-скриптом:
download_schemas.sh
Options:
--join TEXT Опция позволяет объединить весь дамп в один файл
(по умолчанию отдельный файл для каждой
таблицы).
--source [xml|dbf] Формат источника данных.
Возможные варианты: xml | dbf.
По умолчанию "xml". "dbf" пока не реализован.
--sql-syntax [pgsql|mysql] SQL формат выходных файлов (по умолчанию "pgsql").
--db-schema TEXT Имя схемы в БД (только PostgreSQL), по умолчанию: "gar").
--xsd-schema TEXT Тип XSD схемы. Возможные варианты: gar | fias. (По умолчанию: "gar").
--table-list TEXT Список таблиц для обработки, указывается строкой с разделением запятой.
--no-data Не генерировать в результирующем файле инструкуции для вставки данных в таблицы.
--no-definition Пропустить создание схемы.
--encoding TEXT Кодировка таблицы, по умолчанию "utf8mb4" (только для MySQL).
--beta Отладочный флаг. Для проверки работы методов.
--version Show the version and exit.
--help Show this message and exit.
Простейший вариант полная конвертация:
$ ru_address /путь/к/файлам /путь/для/сохранения --join=dump.sql
С ограниченным списком таблиц:
$ ru_address /путь/к/файлам /путь/для/сохранения --table-list=ACTSTAT,ADDROBJ,CENTERST
sudo pip uninstall ru-address && sudo rm -f /usr/local/bin/ru_address