top
(README.md)
## Экспорт справочника ФИАС в БД PostgreSQL

[![GoDoc](https://godoc.org/github.com/pavlik/fias_xml2postgresql?status.svg)](https://godoc.org/github.com/pavlik/fias_xml2postgresql)

> ФИАС - Федеральная информационная адресная система

[ФИАС](http://fias.nalog.ru/Public/DownloadPage.aspx) выкладывает справочник адресов России в открытом доступе (и регулярно его обновляет). Но данные доступны всего в 2 форматах XML и DBF (FoxPro). В распакованом виде база весит около 20Гб. В таком формате не совсем удобно работать со справочником.

Для решения этой проблемы на [Go](http://golang.org/) была написана утилита экспортирующая данные из XML (в дальнейшем будет опция XML или DBF) в PostgreSQL.

![Программа работает в терминале и выглядит следующим образом :)](screenshot.png)

## Установка
1. Скачайте утилиту `go get -u github.com/pavlik/fias_xml2postgresql`
2. Перейдите в директорию с исходниками `cd $GOPATH/src/github.com/pavlik/fias_xml2postgresql`
3. Скачайте все зависимости `go get -u`
4. В этой директории создайте папку `xml` (позже будет создаваться автоматически).
5. Скачайте в директорию `xml` полный архив справочника в формате XML (позже будет скачиваться автоматически).
6. Создайте в PostgreSQL базу с именем fias принадлежащую пользователю dev с паролем dev. Или ваши данные, но тогда не забудьте изменить строку подключения в файле main.go
7. Запустите `go run main.go`

### Сделано:
* Сделать обработку таблиц многопоточной

### В планах:
* Вариант экспорта либо из XML, либо из DBF
* Добавить возможность автоматического скачивания архива с сайта ФИАС, распаковки и экспорта
* Добавить возможность автоматической проверки обновлений базы и автоматической установки, если требуется
* Проставить в схемах таблиц индексные поля
* Написать Makefile для автоматического создания таблицы fias и пользователя, для работы с ней

Imports 18 package(s)

  1. github.com/pavlik/fias_xml2postgresql/structures/center_status
  2. github.com/pavlik/fias_xml2postgresql/structures/house_interval
  3. github.com/pavlik/fias_xml2postgresql/structures/estate_status
  4. github.com/pavlik/fias_xml2postgresql/structures/normative_document_type
  5. github.com/pavlik/fias_xml2postgresql/structures/current_status
  6. github.com/pavlik/fias_xml2postgresql/structures/operation_status
  7. github.com/jmoiron/sqlx
  8. github.com/pavlik/fias_xml2postgresql/structures/address_object
  9. github.com/lib/pq
  10. github.com/pavlik/fias_xml2postgresql/structures/landmark
  11. github.com/pavlik/fias_xml2postgresql/structures/actual_status
  12. github.com/pavlik/fias_xml2postgresql/structures/house
  13. github.com/pavlik/fias_xml2postgresql/structures/house_state_status
  14. github.com/pavlik/fias_xml2postgresql/structures/normative_document
  15. github.com/pavlik/fias_xml2postgresql/structures/structure_status
  16. github.com/pavlik/fias_xml2postgresql/structures/interval_status
  17. github.com/nsf/termbox-go
  18. github.com/pavlik/fias_xml2postgresql/structures/address_object_type