Меню Рубрики

Установка и настройка osm2pgsql

Установка и настройка генерации тайлов на основе OSM данных под Windows

Дисклеймер

Недавно по работе возникла задача генерации тайлов на основе OSM данных. Поискал, прочитал несколько статей, но везде фигурировали *nix-системы, а у меня был в наличии сервер под управлением Windows. В конце-концов, более-менее внятный туториал нашёлся, но он слегка устарел и не везде подробен, посему пришлось повозиться. После удачного завершения подумал, что мой опыт будет полезен.

Кого заинтересовал, прошу под кат.

Вводные

1. Установка и настройка PostgreSQL

Дистрибутив можно взять с офсайта. Установка достаточно тривиальна, однако, есть пара моментов.

Во-первых, возможно, следует изменить директорию, где хранится БД (может потребоваться до терабайта, в случае использования OSM данных для всей планеты). По умолчанию (для версии 9.4) это C:\Program Files\PostgreSQL\9.4\data

Во-вторых, возможно, следует изменить локаль кластера. В моём случае на Russian, Russia . При установке у вас также спросят пароль для сервера PostgreSQL, он ещё понадобится, запомните его.

После установки самого PostgreSQL, запустится StackBuilder, мастер установки расширений для БД. Нужно выбрать два расширения: Spatial Extensions -> PostGIS и Database Drivers -> JDBC. Все настройки при установке по-умолчанию. В процессе установки PostGIS будет запрос на создание системной переменной и ещё пара вопросов, соглашайтесь. После этого нужно перезапустить службу PostgreSQL.

Далее добавьте bin директорию PostgreSQL в PATH . После добавления нужно выйти из системы и войти заново (logoff-login), чтобы настройки применились.

Проверяем корректность установки, понадобится вспомнить пароль, который вы вводили на этапе установки. Находим в программах pgAdmin III и запускаем. В списке серверов будет единственный localhost:5432 , подключаемся. Если не удаётся, скорее всего, служба не запущена.

Создаём шаблон для базы геоданных:

Добавляем два расширения в шаблон: postgis и postgis_topology . Отключаемся от этой базы.

Создаём базу данных gis на основе шаблона template_postgis_20 :

Берём патч для PostGIS GiST отсюда. Патчим из командной строки:

2. Установка и настройка Osm2pgsql

Можно взять последний релиз с гитхаба и собрать самому, а можно взять готовый артефакт отсюда.

Скачиваем, распаковываем, переименовываем для удобства в osm2pgsql . Добавляем эту директорию в переменную PATH . Logoff-login. Проверяем, что всё работает:

Должна вывестись справка. Берём последний default.style из репозитория на гитхабе.

Всё готово для импорта OSM данных.

Карта планеты в сжатом виде весит

40 Гб. Для примера можно взять карту Москвы, например, отсюда. Скачиваем.

Для импорта выполняем в командной строке:

Параметр -s , т.е. slim — режим, при котором временные данные хранятся в БД. Это замедляет процесс, увеличивает использование диска, но уменьшает использование оперативной памяти.

Если всё правильно, будет запрос пароля и начнётся импорт дампа в БД. В первых строчках будут всякие предупреждения, не пугайтесь, всё в порядке. После завершения импорта будет выведено что-то вроде:

3. Установка Python’а 2.x

Скачиваем дистрибутив x86 (потому что бинарники Mapnik для Windows есть только x86) отсюда. Ставим, настройки по-умолчанию, кроме одного: стоит отметить «Добавить python.exe в PATH», или сделать это ручками после установки. Logoff-login.

Проверяем правильность установки:

4. Установка и настройка Mapnik’а

Опять-таки есть два варианта: или собирать самому из исходников с гитхаба, или взять готовые бинарники здесь. Ищем Windows 32 bit Package , скачиваем, распаковываем в C:\mapnik-v2.2.0 .

У них есть довольно подробный мануал по установке в вики. Вкратце: добавить lib и bin директории мапника в PATH , это раз. Создать новую системную переменную PYTHONPATH и присвоить ей путь до C:\mapnik-v2.2.0\python\2.7\site-packages , это два. Поставить этот vcredist, это три. Logoff-login.

Проверяем правильность установки:
Возможные ошибки разобраны в вики. Но помимио этого стоит попробовать перенести пути до lib и bin в начало PATH .

Идём на гитхаб, находим библиотеку PROJ.4, находим бинарники: Prebuilt Win32 executables, DLL including NAD27 grid shift files . Скачиваем, распаковываем ( c:\proj ). В PATH добавляем путь до bin , в новую переменную PROJ_LIB путь до nad . Logoff-login.

Скачиваем скрипты для генерации тайлов из официального svn-репозитория, кладём в c:\mapnik .

Далее, для работы скрипта нужны береговые линии и всякое такое. Для этого есть скрипт get-coastlines.sh , однако он написан на баше и под Windows работать не будет. Но он довольно простой и короткий, поэтому просто повторим все действия ручками.

Скачиваем:

  • Раз
  • Два
  • Три
  • Четыре
  • Пять

Распаковываем все архивы в директорию в c:\mapnik\world_boundaries .

Последние приготовления. Идём в mapnik\inc , файл settings.xml.inc.template переименовываем в settings.xml.inc .

Файл fontset-settings.xml.inc.template в fontset-settings.xml.inc .

Файл datasource-settings.xml.inc.template в datasource-settings.xml.inc и правим его:

Немного поправим скрипт generate_tiles.py :
Блок на строке 193:
заменяем на

Указываем границы в которых будет производиться генерация тайлов (географические координаты прямоугольника):

На строке 213 перед
пишем (в нашем случае Москвы)

Указываем пути и запускаем генерацию тайлов:

Процесс должен пойти.
Займёт от нескольких минут до недель (в случае всего мира и не самой мощной машины).

источник

Установка и настройка генератора тайлов на основе OSM данных в Ubuntu или Debian

Совсем недавно возникла задача создания программного обеспечения по генерации картографических тайлов. В качестве основы выбор пал на mapnik (альтернатив ему немного). Как оказалось, здесь на пути поджидало множество сложностей, непредвиденных ошибок, а более менее внятной документации по настройке всего «под ключ» найти не удалось. Повозившись какое-то время, мне удалось собрать множество граблей, которые могут возникнуть ну и довести дело до победного конца. Об этом и статья.

Установка производилась в Ubuntu и Debian. Скажу сразу, что лучше конечно использовать последние версии программных продуктов, которых иногда нет в репозитариях. Их можно скачать, при желании, вручную с официальных сайтов.

Читайте также:  Установка локали в линукс

Не считая необходимых зависимостей, в общем случае нам понадобятся

  • PostgreSQL >= 8.4
  • PostGIS >= 1.5 = 2
  • Osm2pgsql
  • Некоторые знания по работе с bash, Python и PostgreSQL

Установка PostgreSQL

Сперва проверем какая версия PostgreSQL у нас в репозитариях:

Если версия 8.4 и более, то устанавливаем пакет.

В противном случае, скачиваем пакет с официального сайта www.postgresql.org/download/linux и устанавливаем его. Далее нам надо настроить нашу базу данных. По умолчанию её пользователь — это postgres и авторизоваться можно только от него средствами самой OC. Однако мы поступим несколько по-другому, сперва откроем файл pg_hba.conf. Узнать его расположение можно утилитой locate

Если у вас эта утилита не установлена, то ставим

и повторяем команды выше. У меня например этот файл расположен по адресу /etc/postgresql/8.4/main/pg_hba.conf. Открываем его и редактируем.

Сохраняем файл и перезапускаем PostgreSQL.

Теперь мы можем создать любого пользователя базы и заходить от него под обычным паролем без всякого шифрования (нам не критична супер безопасность). А также нам потребуется новая база данных для наших OSM данных.
Заходим в консоль управления PostgreSQL.

Пользователь и база данных созданы.
Проверить работоспособность нового пользователя можно командой

Если после ввода пароля Вы попадете в консоль PostgreSQL, то все прошло успешно.

Установка PostGIS

Нам потребуется PostGIS. В моем репозитарии была версия 1.4. Так как, после её установки мне почему-то не удалось найти файл postgis.sql, я снес эту версию и скачал с официального сайта версию 1.5. Поэтому в статье, мы поступим также.

Распаковываем архив, собираем и устанавливаем.

В случае отсутствия необходимых библиотек, устанавливаем их.
Далее устанавливаем специальный язык в базу osm.

Теперь необходимо в базу osm выполнить два SQL скрипта: postgis.sql и 900913.sql.
При помощи утилиты locate находим их расположение и выполняем их.

Обратите внимание, как показала практика данную команду необходимо выполнить именно от пользователя с привилегиями суперпользователя PostgreSQL. Если у вас возникли проблемы и ошибки плана ERROR: type «geometry» does not exist, то попробуйте перед выполнением sql файла выполнить:

и повторите команду запуска sql файлов.
Все! С настройкой PostgreSQL мы закончили. Переходим к установке Mapnik.

Установка Mapnik

Если система выдаст, что “add-apt-repository: command not found”, то

И повторите три команды выше. Mapnik установлен. Я не стал писать о необходимости установки Python, так как в большинстве случаев он всегда уже стоит. Проверяем работу mapnik.

Если ошибок никаких не возникло, то все прошло успешно. Теперь перейдем к установке osm2pgsql

Установка Osm2pgsql

Остался один важный штрих. Дело в том, что файл default.style, поставляемый osm2pgsql для экспорта osm данных в базу данных, по какой-то причине не соответствует последнему формату OSM. (Может быть кто знает почему?). Скачиваем файл правильного формата.

Далее заменяем, тот что шел по умолчанию с osm2pgsql

Установка скриптов от OpenStreetMap для генерации тайлов

Репозитарий OpenStreetMap svn.openstreetmap.org содержит немало скриптов и утилит по картографической тематике. Нам понадобится одно из приложений, написанное на python, которое уже содержит все необходимые нам скрипты по работе с mapnik. Чтобы его скачать требуется установить Subversion.

Теперь смело можно загрузить OSM Application. Создайте папку для его расположения. например, у меня это /home/osm/mapnik и выполните checkout.

Теперь запускаем скрипт находящийся в приложении.

Он скачает нам необходимые файлы с шейпами мира.
Теперь необходимо создать XML файл стилей. Делается это следующей командой:

Будет создан файл my_osm.xml с данными для подключения к PostgreSQL.

Проба пера

Вот и настал момент, когда можно качать любой OSM файл и генерировать на его основе тайлы. Файлы OSM можно скачать с сайтов представленных на веб-странице wiki.openstreetmap.org/wiki/Planet.osm
Можно, конечно, скачать весь файл Planet.osm, но нужно ли оно вам? В распакованном виде он весит более 250 Гб.

Предположим мы хотим сгенерировать тайлы Москвы на 17 масштабе.
Качаем необходимый OSM файл.

Теперь мы можем его экспортировать в базу данных.

Все! Осталось лишь запустить скрипт по генерации тайлов. Но перед этим, нам нужно его слегка отредактировать, дабы указать нужный масштаб и координаты каких тайлов мы хотим получить. Открываем файл /home/osm/mapnik/generate_tiles.py. Устанавливаем переменную mapfile, чтобы она указывала на наш my_osm.xml.

Далее переопределите переменную, которая указывает куда Вы желаете складывать тайлы.

Файл Moscow.osm который мы скачали имеет координаты векторных данных

Находим в скрипте такие строки

И перед ними (дабы не затирать существующий код) пишем:

Желательно написать exit(), дабы скрипт после генерации тайлов Москвы не преступил к генерации всего мира.
4 и 5 параметры функции render_tiles задают масштаб с какого по какой мы будем генерировать тайлы. В данном случае мы выбрали только 17 масштаб.

источник

RU:Osm2pgsql

Эта страница находится в процессе перевода или помечена для этой цели, поэтому может содержать пропуски, ошибки и непереведённые фрагменты.
Исходная статья: Osm2pgsql. Вы можете закончить перевод.
Если вы знаете английский, то можете помочь нам, переведя часть оригинальной статьи. Общие сведения о переводе статей на русский язык можно найти здесь.

osm2pgsql это утилита, преобразующая формат данных OpenStreetMap (.OSM), в данные для загрузки в базу данных PostgreSQL. Она часто используется для отображения данных OSM визуально, используя Mapnik, Mapnik может запросить картографические данные через PostgreSQL, а вот напрямую с OSM файлами не работает (уже работает, плагин для файлов OSM доступен в последних релизах mapnik). Для получения дополнительной информации об использовании osm2pgsql, как отображать данные OpenStreetMap с помощью Mapnik, сходите на страничку Mapnik.

Читайте также:  Установка процессора 775 на 1155

osm2pgsql — утилита конвертации с потерями. Она вносит только те объекты, которые имеют теги, определенные в конфигурационном файле, и она конвертирует точки и линии в линии и полигоны. Это означает, что вы не сможете узнать, что с чем связано, но для рендренинга карты это не важно (в отличие от маршрутизации).

osm2pgsql работает в двух режимах — нормальном (это так называется?) и в slim режиме. В первом случае RAM используется для промежуточного хранения, во втором используются tracking tables

  • planet_osm_nodes
  • planet_osm_ways
  • planet_osm_rels

в базе данных на диске. В начале 2009, вы должны были использовать тонкий режим для импорта планеты на 32-битной системе, т.к. слишком много узлов для хранения в RAM. Это ограничение не относится к 64-битным системам, если у вас много свободной памяти (по состоянию на 28/05/2010, для planet.osm вам понадобится больше 256GB RAM памяти!! Точно не скажу, но знаю, что 32GB не хватило для europe.osm).

Для подробностей смотрите Osm2pgsql/schema.

Вы также можете собрать osm2pgsql с нуля (исходники в subversion), или взять существующие пакеты Linux.

Для использования osm2pgsql с поддержкой 64-битных ID, получите ту же версию из SVN выше и перед компиляцией раскомментируйте в osmtypes.h строку #define OSMID64. 64-битная поддержка была добавлена Frederik Ramm, после предварительного выделения osm2pgsql-64 ветки в SVN.

Содержание

Установка

Для Debian Lenny (stable) или Sid (unstable) или Ubuntu (10.04 LTS и позже)

Из менеджера пакетов

В Ubuntu 9.10 (Karmic) или новее, установите пакет osm2pgsql из Kai PPA:

  1. Выполните sudo add-apt-repository ppa:kakrueger/openstreetmap чтобы добавить PPA
  2. Выполните sudo apt-get update для обновления информации о пакетах.
  3. Выполните sudo apt-get install osm2pgsql для установки пакета osm2pgsql.

Если у вас Debian unstable (он же sid), вам достаточно лишь установить osm2pgsql из менеджера пакетов. В случае иного дистрибутива вы получите устаревшую версию, без многих возможностей, вроде hstore или поддержки pbf.

Внимание ещё раз: пакет может оказаться устаревшим. Если увидели артефакты при рендренинге, или не увидели какие-то объекты, соберите osm2pgsql из исходников.

Из исходников

Для сборки в Ubuntu (10.4 LTS), необходимы следующие зависимости:

Если вы желаете поддержку чтения PBF, вам нужен libprotobuf-c0-dev версии не ниже 0.14-1. Поскольку в репозитории 10.4 лежит версия 0.11, вам нужно собрать его из исходников [2]:

Fedora

После чего читаем раздел Из исходников (общее). Пакет osm2pgsql для Fedora в review.

openSUSE 11.0

Нужно добавить репозиторий:

Затем установить зависимости

openSUSE 11.1

Нужно добавить репозиторий:

Затем установить зависимости

openSUSE 11.2

Прежде всего, добавляем репозиторий Geo:

Для скачивания и сборки osm2pgsql, вам сначала нужно установить зависимости и несколько инструментов:

Arch Linux

Gentoo Linux

Для начала поставьте Postgis, всё равно он нам протребуется как цель для импорта (и одновременоно поставит библиотеки геометрии(.

Возможно придется предварительно запустить emerge с ключем —autounmask-write для разблокировки необходимых пакетов, которые по умолчанию отключены

Также потребуются ряд не связанных с геометрией зависимостей

FreeBSD

Windows XP

Самую свежую версию для Windows с 9 апреля 2010 можно найти здесь http://tile.openstreetmap.org/osm2pgsql.zip
Эта версия, помимо прочего, поддерживает опцию hstore, которая позволяет сохранять все теги из файла .osm в PostgreSQL. Пользователи Windows могут получить базу данных с поддержкой hstore, установив PostgreSQL 8.3.9 из http://wwwmaster.postgresql.org/download/mirrors-ftp/binary/v8.3.9/win32/postgresql-8.3.9-1.zip. Не забудьте отметить опцию hstore во время установки.

Для использвания osm2pgsql, просто распакуйте его, добавьте путь в системную переменную path и запустите.

  1. Распакуйте zip в новую директорию на жёстком диске
  2. Добавьте новую директорию в системную переменную path ([3])
  3. Выйдите из системы, и войдите снова, чтобы переменная обработалась
  4. Откройте сеанс командной строки
  5. Перейдите в директорию, куда вы распаковали osm2pgsql
  6. Теперь выполните > osm2pgsql -h команда отобразит справку
  7. В Windows для указания размещения файла стиля необходимо использовать параметр -S или —style. По умолчанию подразумевается путь как в unix.
  • Пример строки > osm2pgsql -c -d gis -U postgres -W -H localhost -P 5432 N:\Geo_data\OpenStreetMap\OSM_xml\ваш_файл_OSM.bz2

Установщик «HOTOSM» включает в себя и ставит автоматически упомянутый выше бинарник osm2pgsql. Данный установщик также включает в себя Mapnik, Osmosis, и множество полезных инструментов. Последнюю сборку можно скачать из: https://github.com/hotosm/installer/downloads

Версия из http://artem.dev.openstreetmap.org/files/ несколько устарела (нет импорта отношений)

Из исходников

Используя MinGW, можно решить много проблем, возникающих при сборке osm2pgsql:

Конфигурационный скрипт osm2pgsql не находит zlib и другие библиотеки

Конфигурационный скрипт, созданный autogen работает некорректно, потому что параметры для определения библиотек, которые будут слинкованы (например -lz для libz) находятся в неверной позиции. Они размещены в конце командной строки. By manually adding the correspondent parameters to the

Решение: Поправьте конфигурационный скрипт и добавьте библиоткеи для линковки вручную:

Note: Добавление отладочного параметра d к autogen.sh (autoreconf -vfid) очень полезно в данной ситуации для поиска строк, которые нужно поправить.

Решение: Поправьте build_geometry.cpp, добавив #define GEOS_INLINE

Используемые версии: libxml2-2.7.8, zlib-1.2.5, proj-4.7.0, geos-3.2.2

Mac OS X

Бинарный установщик

Сборки SVN snapshot osm2pgsql упакованы и доступны на http://dbsgeo.com/downloads/#osm2pgsql.

Использование MacPorts

Единственная заморочка этого способа в том, что по умолчанию установка Postgres 8.3 не прописывает pg_config в shell, так что вызов pg_config —includedir и pg_config —libdir будет безуспешным. В этой ситуации, либо измените эти пути в Makefile, либо добавьте pg_config себе в shell через .bashrc, etc. Например, инсталляция 8.3 обычно кладёт бинарник сюда:

Читайте также:  Установка дверного доводчика булат

Использование KyngChaos binaries

Из исходников (общее)

Вы можете получить исходники утилиты osm2pgsql, используя Git (около 30 Мб):

Вам потребуется утилита ‘cmake’, libtool и ряд других зависимостей. О подробностях установки для вашего дистрибутива смотрите выше.

Далее, войдите в созданную директорию, содержащую исходники утилиты:

Создайте директорию для сборки, перейдите в неё и подготовьте Makefile:

Дополнительно вы можете сконфигурировать компилятор для создания более быстрого бинарника, который будет работать только на процессорах, совместимых с вашим.

В завершение, скомпилируйте исходники в исполняемую программу:

Если вы используете старую версию GCC, вы можете получить ошибку: unrecognized option `-Wextra’. В этом случае, удалите из Makefile эту ненужную опцию.

Как избежать ловушек

osm2pgsql это специализированная утилита, и в её код зашиты некоторые особенности поведения, о которых вам нужно знать.

Береговые линии

natural = coastline теги подавляются и не импортируются, даже если вы импортируете ключ natural =*. Mapnik выводит на карту побережья из файлов shapefiles так что это и не нужно. Начиная с ревизии 24605 вы можете использовать параметр --keep-coastlines для изменения такого поведения, если желаете иметь береговые линии в своей базе данных.

Режим slim

Ряд важных операций (включая инкрементальные обновления planet diffs, первичную загрузку для заполнения трекинговых таблиц и корректную обработку мультиполигонов) работает исключительно в -slim режиме. Крайне рекомендуется всегда использовать slim режим, даже для файлов, которые легко умещаются в памяти.

Для включения данного режима используйте опцию ‘-s’: osm2pgsql -s -d .

Стили импорта

osm2pgsql требует иного подхода для различия линии как области и как линейного объекта, вроде дороги, так как они импортируются в разные таблицы базы данных. За этот процесс отвечает последняя колонка в файле стиля импорта. Если какие-либо из тегов данного объекта помечены как «polygon», эта линия рассматривается в качестве кандидата на рендеринг полигона. Если она замкнута, то обработается как область, если незамкнута — будет линия. Объекты, которые не удалось интерпретировать, на карте не отобразятся.

Тег area воздействует на поведение непосредственно. area = yes всегда будет делать область. Аналогично, area = no всегда будет делать линейный объект, но это не самый хороший вариант нестандартного тегирования для обхода проблем с отображением у конкретного рендерера.

В некоторых случаях определиться довольно тяжело. Например, тег highway может быть как областью (пешеходные площади), так и замкнутым линейным объектом (кольцевая дорога). На основной карте практикуется стиль импорта как для линейных объектов, и использование area = yes с площадными объектами.

Стиль по умолчанию для osm2pgsql импортирует в базу не все теги из .OSM файла. Смотрите http://svn.openstreetmap.org/applications/utils/export/osm2pgsql/default.style для списка ключей, которые импортируются.

Доступ к БД

Не существует способа идентификации пользователя с помощью пароля в osm2pgsql. Так что вам либо придется установить механизм аутентификации для текущего пользователя/всех пользователей в значение ‘trust’, либо обойти его путём создания файла паролей. Смотрите PostgreSQL-документацию, чтобы узнать, как это сделать

Проблемы компиляции

новая версия od gcc больше не требует lstdc++: удалите строку в ‘Makefile’ (или закомментируйте её):

Оптимизация

Параметры

  • Большие объемы импорта в PostGIS очень чувствительны к конфигурации обслуживания и мониторинга: логично увеличить значение checkpoint_segments чтобы задачи autovacuum не замедляли процессы импорта.
  • osm2pgsql relies much on it’s node cache during import. If the nodes do not fit into the cache it needs to do database lookups which slow down the process. Use enough cache so all nodes are cached. -C 12000 seams to do the job, even if that means you have to configure more swap space.

Альтернативы

Скорость ввода/вывода

Слабым звеном обычно являются операции ввода/вывода, когда запущен osm2pgsql в —slim режиме или даже без него. Как бы то ни было, когда используются процессоры частотой 3ГГц и быстрые (XM-25 for instance) твердотельные накопители (SSD жёсткие диски), слабым звеном становится наоборот процессор. В этом случае вы можете использовать альтернативную osm2pgsql.c библиотеку которая распространяется в исходниках с июля 2010. Она реализует сырой, но быстрый XML парсинг. Поскольку она всё ещё экспериментальная, то должна использоваться вами с осторожностью. Она требует следующие патчи для избежания засорения памяти в ситуации когда только стартовала, но не может использоваться для чтения Многоядерность

Для файла планеты, сжатого bzip, запустите osm2pgsql так

bunzip -c [planet.osm.bz2] | osm2pgsql [options] /dev/stdin

Одно ядро будет задействовано для распаковки bzip2, другое — для osm2pgsql. Протестировано на Ubuntu 11.04.

Бенчмарки

Смотрите /benchmarks для информации о тестировании производительности.

Обновление информации в базе данных

osm2pgsql — один из инструментов для поддержания данных OSM в вашей собственной базе данных PostgreSQL в актуальном состоянии при изменениях на серверах OpenStreetMap. Смотрите Minutely_Mapnik для дополнительной информации.

Отчеты об ошибках

Войдите в http://trac.openstreetmap.org/ создайте отчет об ошибке, указав компонент mapnik, и убедитесь, что он появился в в списке.

hstore

Hstore предназначен для хранения пар ключ/значение. Тип данных associative array, подобно hash в perl или dictionary в python.

Заполнение производится вручную, в основном для редких тегов.
C hstore вы можете использовать теги в sql запросах, вроде этого:

соберите osm2pgsql из svn
вам нужно указать опцию -k

  • пошаговое описание создания ежеминутно обновляемой таблицы osm2pgsql hstore (по-немецки, но команды те же): DE:HowtoMinutelyHstore
  • дополнительная информация о postgresql hstore

установка в postgresql

postgresql до версии 9.1

Postgresql версии 9.1 и позднее

Данный sql код установит расширение в базу данных [1] :

источник

Добавить комментарий

Adblock
detector