- PVSM.RU - https://www.pvsm.ru -
Конвертация КЛАДР в формат sqlite.
wget www.gnivc.ru/html/gnivcsoft/KLADR/Base.7zsudo yum install p7zip7za e Base.7zsudo yum install sqlitesudo yum install sqlite3-dbfsqlite3 my_kladr.db.load libspatialite.so.2CREATE VIRTUAL TABLE virt_street_tbl USING VirtualDbf('/home/developer/kladr/STREET.DBF', 'CP866');CREATE VIRTUAL TABLE virt_socrbase_tbl USING VirtualDbf('/home/developer/kladr/SOCRBASE.DBF', 'CP866');CREATE VIRTUAL TABLE virt_kladr_tbl USING VirtualDbf('/home/developer/kladr/KLADR.DBF', 'CP866');CREATE VIRTUAL TABLE virt_flat_tbl USING VirtualDbf('/home/developer/kladr/FLAT.DBF', 'CP866');CREATE VIRTUAL TABLE virt_doma_tbl USING VirtualDbf('/home/developer/kladr/DOMA.DBF', 'CP866');CREATE VIRTUAL TABLE virt_altnames_tbl USING VirtualDbf('/home/developer/kladr/ALTNAMES.DBF', 'CP866');
create table street_tbl as select * from virt_street_tbl;
create table socrbase_tbl as select * from virt_socrbase_tbl;
create table kladr_tbl as select * from virt_kladr_tbl;
create table flat_tbl as select * from virt_flat_tbl;
create table doma_tbl as select * from virt_doma_tbl;
create table altnames_tbl as select * from virt_altnames_tbl;
drop table virt_street_tbl;
drop table virt_socrbase_tbl;
drop table virt_kladr_tbl;
drop table virt_flat_tbl;
drop table virt_doma_tbl;
drop table virt_altnames_tbl;
.exitРезлуьтат: файл my_kladr.db содержит КЛАДР в формате sqlite.
Подключение файла my_kladr.db к базе данных PostgreSQL
wget https://github.com/gleu/sqlite_fdw/archive/master.zipsudo yum install unzipunzip mastercd sqlite_fdw-mastersudo PATH=/usr/pgsql-9.3/bin/:$PATH make USE_PGXS=1 installsudo su - postgrespsqlc YourDatabaseCREATE EXTENSION sqlite_fdw;CREATE SERVER sqlite_kladr_server
FOREIGN DATA WRAPPER sqlite_fdw
OPTIONS (database 'path_to_my_kladr.db');create schema kladr;CREATE FOREIGN TABLE kladr.street_tbl( id bigint, name varchar, type varchar, code varchar, c2 varchar, c3 varchar, c4 varchar, c5 varchar)
SERVER sqlite_kladr_server
OPTIONS (table 'street_tbl');
CREATE FOREIGN TABLE kladr.socrbase_tbl(
id bigint,
id1 bigint,
short_name varchar,
full_name varchar,
id3 bigint)
SERVER sqlite_kladr_server
OPTIONS (table 'socrbase_tbl');
CREATE FOREIGN TABLE kladr.kladr_tbl(
id bigint,
name varchar,
type varchar,
code varchar,
c4 varchar,
c5 varchar,
c6 varchar,
c7 bigint)
SERVER sqlite_kladr_server
OPTIONS (table 'kladr_tbl');
CREATE FOREIGN TABLE kladr.doma_tbl(
id bigint,
house varchar,
c1 varchar,
c2 varchar,
c3 varchar,
c4 varchar,
c5 varchar,
c6 varchar,
c7 varchar)
SERVER sqlite_kladr_server
OPTIONS (table 'doma_tbl');
CREATE FOREIGN TABLE kladr.altnames_tbl(
id bigint,
code1 varchar,
code2 varchar,
c1 varchar)
SERVER sqlite_kladr_server
OPTIONS (table 'altnames_tbl');
select * from kladr.kladr_tbl limit 10;Результат: Кладр подключен к базе данных PostgreSQL.
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/pesochnitsa/73963
Нажмите здесь для печати.