Страница 1 из 1

Ошибка импорта базы EPSGE

Добавлено: 12 май 2016, 12:23
gamm
при попытке импорта базы EPSG в формате PostgreSQL отсюда через PgAdmin (v.1.22.1), PostgreSQL v.9.5, использовалась консоль, psql 9.5.1, таблицы создались, ключи создались, но данные не импортируются (файлы я переименовал, консоль не позволяет делать копи/паст)
ClipBoard.png
ClipBoard.png (34.16 КБ) 9078 просмотров
Может, у кого-то есть опыт удачного импорта, поделитесь :D

Re: Ошибка импорта базы EPSGE

Добавлено: 12 май 2016, 12:27
KolesovDmitry
На всякий случай хочу уточнить -- цель импрортировать данные, или создать БД геоданных (т.е. инициализировать PostGIS)?

Если цель в инициализации PostGIS, то можно просто сделать

Код: Выделить всё

CREATE EXTENSION postgis
тогда произойдет иморт необходимых таблиц, в том числе и базы EPSG.

Re: Ошибка импорта базы EPSGE

Добавлено: 12 май 2016, 12:38
gamm
KolesovDmitry писал(а):На всякий случай хочу уточнить -- цель импрортировать данные, или создать БД геоданных (т.е. инициализировать PostGIS)?
PostGIS уже стоит, была тривиальная задача - найти конкретные параметры, Access ставить ради этого неохота. А что, в недрах PostGIS все уже есть?

Re: Ошибка импорта базы EPSGE

Добавлено: 12 май 2016, 13:12
Александр Мурый
Может, со SQLite проще будет?

Re: Ошибка импорта базы EPSGE

Добавлено: 12 май 2016, 13:25
gamm
Александр Мурый писал(а):Может, со SQLite проще будет?
проще с Access, там точно все работает (и у них даже в Ёкселе был вариант, нужно поискать). А SQLite у меня просто нет. Смущает, что это данные из официального источника - должны быть проверены ...

Re: Ошибка импорта базы EPSGE

Добавлено: 12 май 2016, 13:31
gamm
KolesovDmitry писал(а):то можно просто сделать

Код: Выделить всё

CREATE EXTENSION postgis
тогда произойдет иморт необходимых таблиц, в том числе и базы EPSG.
расширение создал, импорт не произошел.

Re: Ошибка импорта базы EPSGE

Добавлено: 12 май 2016, 14:24
Ariki
Точно не произошёл? Должна появиться таблица под названием spatial_ref_sys. Если нет, поищите в каталоге PostGIS SQL-файл с данными. Путь под Windows примерно такой: C:\Program Files\PostgreSQL\9.5\share\contrib\postgis-2.2\spatial_ref_sys.sql

Re: Ошибка импорта базы EPSGE

Добавлено: 12 май 2016, 17:40
gamm
Ariki писал(а):Точно не произошёл?
вопрос был про то, почему не идет импорт данных всей базы EPSG, мой ответ тоже про это. Интересует, удавалось ли кому-нибудь импортировать все 22 таблицы.

от таблицы с проекциями (которая от расширения) толку нет - в ней нет датумов, которые собственно и нужны.

Re: Ошибка импорта базы EPSGE

Добавлено: 12 май 2016, 19:35
Ariki
Мне лень регистрироваться у них, чтобы скачать данные и проверить самому, но убедитесь, что в SQL-файле строки таблицы epsg_namingsystem импортируются раньше, чем строки epsg_alias. Ещё в PostgreSQL можно отложить проверку ограничений, если завернуть всё в транзакцию и добавить в начале SET CONSTRAINTS ALL DEFERRED; Помогает, когда нужно импортировать таблицы, ссылающиеся друг на друга.

Что касается SQLite - это ведь встраиваемая БД, файл SQLite можно хоть QGIS'ом открыть и посмотреть или сконвертировать во что-нибудь.

Re: Ошибка импорта базы EPSGE

Добавлено: 12 май 2016, 20:35
gamm
Ariki писал(а):Ещё в PostgreSQL можно отложить проверку ограничений, если завернуть всё в транзакцию и добавить в начале SET CONSTRAINTS ALL DEFERRED; Помогает, когда нужно импортировать таблицы, ссылающиеся друг на друга.
тут именно такой случай, осталось понять, как завернуть в транзакцию.
попытка сказать

Код: Выделить всё

BEGIN TRANSACTION;
SET CONSTRAINTS ALL DEFERRED; 
...
END TRANSACTION;
приводит к ошибке

ОШИБКА: текущая транзакция прервана, команды до конца блока транзакции игнорируются

Re: Ошибка импорта базы EPSGE

Добавлено: 13 май 2016, 12:09
Ariki
Скачал всё же данные, там оказалось вообще всё просто: определение внешних ключей вынесено в отдельный файл SQL, который нужно выполнить после создания таблиц и импорта всех данных.

Код: Выделить всё

createdb -U postgres epsg89
psql -d epsg89 -U postgres -f D:\data\coords\epsg-v8_9sql-PostgreSQL\EPSG_v8_9.mdb_Tables_PostgreSQL.sql
psql -d epsg89 -U postgres -f D:\data\coords\epsg-v8_9sql-PostgreSQL\EPSG_v8_9.mdb_Data_PostgreSQL.sql
psql -d epsg89 -U postgres -f D:\data\coords\epsg-v8_9sql-PostgreSQL\EPSG_v8_9.mdb_FKeys_PostgreSQL.sql
У меня всё работает.

Re: Ошибка импорта базы EPSGE

Добавлено: 13 май 2016, 12:31
gamm
Ariki писал(а):Скачал всё же данные, там оказалось вообще всё просто: определение внешних ключей вынесено в отдельный файл SQL, который нужно выполнить после создания таблиц и импорта всех данных.
ясно, спасибо :-)

я сначала создавал таблицы, потом создавал ключи, потом грузил данные. Почему-то подумал, что так правильно :oops:

тему можно закрывать, сейчас попробуй найти, как ...