Code Monkey home page Code Monkey logo

fias's Introduction

GAR to PostgreSQL

Скрипты для загрузки и обновления данных ФИАС в формате ГАР

Если вы решитесь использовать эти скрипты, то имейте в виду, что автор - НЕ программист. Скрипты написаны методом велосипеда и костыля. Они подходят для меня и работают так, как нужно мне на моей рабочей системе. Используйте их на свой страх и риск. Если вы найдёте их полезными, я буду рад. Если знаете, как улучшить, или обнаружите косяки, не стесняйтесь написать мне или даже сделать Pull Request.


Системные требования

  1. Скрипт создавался и тестировался на Ubuntu. На Windows тестов не проводилось.
  2. Python 3.^8
  3. Pip sudo apt install python3-pip
  4. Psycopg2 pip3 install psycopg2
  5. XmlSchema pip3 install xmlschema
  6. PostgreSQL ^10, в котором уже должна быть создана целевая БД

Порядок действий при первичном импорте ГАР.

1. Загрузить с сайта ФНС:

  1. архив с актуальной версией ГАР (прямая ссылка).
  2. XSD схемы выгрузки БД (прямая ссылка).

2. Разархивировать скачанные архивы

XSD схемы и XML файлы должны быть распакованы в разные директории. Для удобства таблицы в архиве разбиты на директории по субъектам РФ. Скрипт импортирует в БД таблицы, относящиеся только к одному субъекту, поэтому в директорию для XML файлов должны быть извлечены:

  1. папка, соответствующая номеру импортируемого субъекта РФ
  2. все файлы, находящиеся в архиве без директорий, "сверху"

3. Создать в директории со скриптом файл config.py и присвоить следующим переменным в нем необходимые значения (все значения - строки)

  • DB_HOST - адрес БД
  • DB_PORT - порт
  • DB_USER - имя пользователя БД
  • DB_PASSWORD - пароль
  • DB_NAME - название БД
  • DB_SCHEMA - название схемы БД
  • XSD_DIRECTORY - папка с XSD схемами
  • XML_DIRECTORY - папка с XML таблицами
  • UPDATE_DIRECTORY - папка, куда скрипт будет скачивать обновления
  • REGION_CODE - код региона
  • UPDATE_SERVICE_URL = http://fias.nalog.ru/WebServices/Public/GetAllDownloadFileInfo - URL службы получения обновлений

4. Запустить index.py и ждать


Для автоматического обновления БД:

1. Клонировать данный репозиторий на сервер с БД (или иной)

2. Установить необходимые зависимости

3. Присвоить переменным в файле config.py необходимые значения

4. В папке UPDATE_DIRECTORY предварительно создать файл currentVersion.txt,

в котором прописать дату скачанного архива в формате dd.mm.yyyy

5. Прописать в cron ежедневное выполнение скрипта updateGAR.py

crontab -e

mm hh * * * /path/to/python/interpreter /path/to/updateGAR.py

Скрипт сравнивает дату в файле currentVersion.txt с датой новейшего доступного обновления на сайте ФНС и, если появилось обновление, скачивает и импортирует его.

fias's People

Contributors

yixellet avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.