Добавление типа ST_Geometry в базу данных PostgreSQL
Вы можете добавить тип ST_Geometry, подтип и функции в вашу базу данных PostgreSQL при помощи инструмента геообработки Создать пространственный тип (Create Spatial Type) или скрипта Python.
Инструмент Создать пространственный тип (Create Spatial Type) выполняет следующие действия:
- Создает роль логина sde в кластере базы данных в PostgreSQL
- Присваивает пользователю sde права суперпользователя (они могут быть отозваны после создания типа ST_Geometry)
- Создает схему с именем sde в базе данных, в которой вы устанавливаете тип ST_Geometry
- Присваивает пользователю sde все права для схемы sde.
- Присваивает права USAGE для схемы sde группе логина общего доступа (если необходимо, вы можете отозвать данное право доступа, но вы должны присвоить право USAGE схемы sde всем пользователям, нуждающимся в доступе к типу ST_Geometry, подтипам или функциям).
- Создает необходимые функции, домены, таблицы (sde_coordinate_systems и sde_geometry_columns), виды (st_geometry_columns и st_spatial_references) в схеме sde, а также таблицу sde_spatial_references в общей схеме
Перед запуском инструмента необходимо скопировать библиотеку st_geometry на сервер PostgreSQL.
Следующие шаги описывают способ установки типа ST_Geometry в базу данных PostgreSQL:
- Скопируйте файл библиотеки st_geometry из директории DatabaseSupport места установки клиента ArcGIS и поместите его в папку lib сервера PostgreSQL. Убедитесь, что вы скопировали библиотеку st_geometry, соответствующую версии PostgreSQL и используемой ОС.
- Местоположение директории lib в Linux может меняться в зависимости от способа установки PostgreSQL. Чтобы определить корректное местоположение для установки PostgreSQL, выполните команду pg_config в качестве пользователя postgres. Значение, возвращаемое для PKGLIBDIR, является папкой lib, в которую необходимо поместить библиотеку st_geometry. Для копирования файла в lib войдите как пользователь root.
- Если сервер PostgreSQL установлен на сервере Windows, поместите файл st_geometry.dll в директорию %PostgreSQL%\lib.
- Если ваша база данных PostgreSQL установлена на сервере Windows, то вам необходим установленный пакет Microsoft Visual C++ 2008 SP1 Redistributable Package (x64) на сервере. Если его нет на сервере PostgreSQL, загрузите пакет с сайта Microsoft и выполните установку.
Это необходимо для использования типа ST_Geometry.
- Запустите ArcCatalog или ArcMap и откройте окно Каталог (Catalog).
- Создайте подключение к вашей базе данных PostgreSQL. Войдите как пользователь postgres.
- Откройте инструмент Создать пространственный тип (Create Spatial Type).
Вы можете воспользоваться окном Поиск (Search) для поиска инструмента или открыть его из группы инструментов Рабочая область (Workspace) набора инструментов Управление данными (Data Management).
- Добавьте описание подключения к базе данных, которую вы создали в шаге 4, в текстовое поле Рабочая область входной базы данных.
- Введите пароль пользователя sde в текстовое поле Пароль пользователя SDE (SDE User Password).
- Оставьте поле Имя табличного пространства (Tablespace Name) пустым.
- Щелкните OK, чтобы запустить инструмент.
Тип ST_Geometry, подтипы и функции создаются в схеме пользователя sde.