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

Ответить
gamm
Гуру
Сообщения: 2536
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 517
Ваше звание: программист
Откуда: Казань

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

Сообщение gamm » 12 май 2016, 12:23

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

KolesovDmitry
Гуру
Сообщения: 806
Зарегистрирован: 22 авг 2007, 14:58
Статьи: 18
Проекты: 4
Репутация: 116
Откуда: Казань

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

Сообщение KolesovDmitry » 12 май 2016, 12:27

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

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

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

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

gamm
Гуру
Сообщения: 2536
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 517
Ваше звание: программист
Откуда: Казань

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

Сообщение gamm » 12 май 2016, 12:38

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

Александр Мурый
Гуру
Сообщения: 5004
Зарегистрирован: 26 сен 2009, 16:26
Статьи: 3
Проекты: 5/1
Репутация: 706
Ваше звание: званий не имею
Откуда: Москва

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

Сообщение Александр Мурый » 12 май 2016, 13:12

Может, со SQLite проще будет?
Редактор материалов, модератор форума

gamm
Гуру
Сообщения: 2536
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 517
Ваше звание: программист
Откуда: Казань

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

Сообщение gamm » 12 май 2016, 13:25

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

gamm
Гуру
Сообщения: 2536
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 517
Ваше звание: программист
Откуда: Казань

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

Сообщение gamm » 12 май 2016, 13:31

KolesovDmitry писал(а):то можно просто сделать

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

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

Ariki
Гуру
Сообщения: 702
Зарегистрирован: 12 янв 2011, 22:40
Проекты: 1
Репутация: 276
Ваше звание:

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

Сообщение Ariki » 12 май 2016, 14:24

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

gamm
Гуру
Сообщения: 2536
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 517
Ваше звание: программист
Откуда: Казань

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

Сообщение gamm » 12 май 2016, 17:40

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

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

Ariki
Гуру
Сообщения: 702
Зарегистрирован: 12 янв 2011, 22:40
Проекты: 1
Репутация: 276
Ваше звание:

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

Сообщение Ariki » 12 май 2016, 19:35

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

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

gamm
Гуру
Сообщения: 2536
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 517
Ваше звание: программист
Откуда: Казань

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

Сообщение gamm » 12 май 2016, 20:35

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

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

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

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

Ariki
Гуру
Сообщения: 702
Зарегистрирован: 12 янв 2011, 22:40
Проекты: 1
Репутация: 276
Ваше звание:

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

Сообщение Ariki » 13 май 2016, 12:09

Скачал всё же данные, там оказалось вообще всё просто: определение внешних ключей вынесено в отдельный файл 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
У меня всё работает.

gamm
Гуру
Сообщения: 2536
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 517
Ваше звание: программист
Откуда: Казань

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

Сообщение gamm » 13 май 2016, 12:31

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

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

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

Ответить

Вернуться в «PostGIS/PostgreSQL»