Утилита для командной строки, позволяющая сконвертировать схему, данные и ключи БД ФИАС и ГАР в 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