Меню

0a000 ошибка create extension from более не поддерживается


Я установил PostgreSQL 9.x и PostGIS 1.5 / 2.0 несколько раз, и у меня никогда не было этой проблемы.

Я только что установил новый сервер CentOS 6.3, и у меня работает Postgres 9.3, как и ожидалось. Я бегал

yum install postgis2_93

и я могу видеть файлы в

/usr/pgsql-9.3/share/contrib/

однако, когда я бегу

CREATE EXTENSION postgis;

я получил

ERROR:  could not open extension control file "/usr/pgsql-9.3/share/extension/postgis.control": No such file or directory

Учебники ( # 1 , # 2 ), которые я использовал, не показывают никаких шагов между установкой PostGIS и созданием расширения.

Чего мне не хватает?






Ответы:


Если вам удастся найти файл postgis.sql, вы можете запустить его в своей базе данных (и в файлеatial_ref_sys.sql), чтобы вручную разместить вашу базу данных. Сообщите об отсутствующем контрольном файле упаковщику, это большая проблема.


У меня просто была такая же проблема на Ubuntu Server 14.04. Я установил postgisрасширение из официальных репозиториев Ubuntu, используя apt-get install postgis.

Тогда find /usr -name postgis.controlне вернул никаких результатов.

Причина не extension/postgis.controlбыла установлена, потому что постгис-скрипты не были установлены.

$ aptitude search postgis
i   libpostgis-java                                  - Geographic objects support for PostgreSQL -- JDBC support 
i   postgis                                          - Geographic objects support for PostgreSQL                 
p   postgis:i386                                     - Geographic objects support for PostgreSQL                 
i   postgis-doc                                      - Geographic objects support for PostgreSQL -- documentation
i   postgresql-9.3-postgis-2.1                       - Geographic objects support for PostgreSQL 9.3             
p   postgresql-9.3-postgis-2.1:i386                  - Geographic objects support for PostgreSQL 9.3             
i   postgresql-9.3-postgis-2.1-scripts               - PostGIS for PostgreSQL 9.3 -- scripts -- dummy package    
i   postgresql-9.3-postgis-scripts                   - Geographic objects support for PostgreSQL 9.3 -- scripts 

Решение состоит в том, чтобы установить это.

На Debian-подобных дистрибутивах:

apt-get install postgis*

Менеджер пакетов aptitude автоматически определит правильные версии пакетов для установки. Postgis-doc также будет установлен.

РЕДАКТИРОВАТЬ

Как некоторые люди заметили в комментариях, postgis*это не является обязательным, поскольку оно устанавливает некоторые пакеты, которые строго не требуются, чтобы заставить его работать.

Обязательные пакеты postgisи postgresql-9.x-postgis-scriptsметапакеты. Они выбирают правильную реальную версию для вашей системы. Таким образом, команды для установки необходимых пакетов

 $ sudo apt-get install postgis postgresql-9.3-postgis-scripts

для postgresql-9.3. Ubuntu 16.04запускается, postgresql-9.5поэтому команда становится:

 $ sudo apt-get install postgis postgresql-9.5-postgis-scripts

Вы можете проверить успешность операции, выполнив следующую команду:

find /usr -name postgis.control

На моем сервере он теперь возвращает:

/usr/share/postgresql/9.3/extension/postgis.control

Теперь вы можете включить расширение в любой базе данных на вашем сервере postgres:

  • подключиться к вашей БД с суперпользователем (postgres по умолчанию)
  • бегать CREATE EXTENSION postgis;

Ваша общедоступная схема теперь содержит все объекты и функции Postgis.







В Ubuntu 14.04 вам также нужно установить postgresql-9.3-postgis-scriptsпакет. После того как я побежал

sudo apt-get установить postgis postgresql-9.3-postgis-scripts

Я тогда смог успешно запустить

СОЗДАТЬ РАСШИРЕНИЕ postgis;

в моей базе данных для инициализации PostGIS.


У меня была такая же проблема, я просто запустил команду

sudo apt-get install postgis

Я использовал Ubuntu 18.04




Другим источником, который вызвал проблему, может быть отсутствующий пакет PostGIS, это можно определить в меню установки или в вашем случае впоследствии. Таким образом, откройте открытые окна, перейдите в PostgreSQL и запустите Application Stack Builder . Затем выберите PostgreSQL, с этим загружаются возможные приложения. Для комплекта PostGIS вам просто нужно установить расширение, подходящее для вашей операционной системы (32- или 64-битную), просто напрямую в Spatial Extensions .

Ведь вот рекомендуемые шаги:

  1. запустить приложение Stack Builder
  2. Прямо к пространственным расширениям
  3. Установить пакет PostGIS

Теперь вы можете добавить расширение с помощью CREATE EXTENSION postgis;вашего SQL-запроса.


Я столкнулся с той же проблемой, думаю, проблема в том, что пакет postgis2_93 не установлен в ожидаемом месте, как и ожидал postgresql. Вы можете попробовать использовать другой репо, который может дать вам правильное место. Или вы можете искать, чтобы добавить расширения вручную, указав место. В моем случае файл находится в /usr/pgsql-9.4/


У меня был худший кошмар при установке Postgis 2.X на SLES 12 SP1. который не имеет совместимого пакета в репозитории Zypper

Вот как это решается на моем экземпляре сервера Postgres под управлением 9.4.X

Prerequsite пакеты, которые я установил до PostGis на основе ошибок

  1. Proj 4 Скачать исходный код Cold, Build -> make install
  2. установить Gdal andjibson, добавив zypper repo zypper addrepo http://download.opensuse.org/repositories/Application:Geo/SLE_12_SP1_Backports/Application:Geo.repo
  3. zypper установить gdal gdal-devel libjson-c-devel libjson

Установка Postgis

  • Загрузить исходный код postgis ( http://download.osgeo.org/postgis/source/postgis-2.3.0rc1.tar.gz )

  • Перейдите в папку Post gis ./configure —with-pgconfig = / usr / lib / postgresql94 / bin / pg_config —with-geosconfig = / usr / local / bin / geos-config make make install

теперь, если вы идете в postgress и создаете расширение postgis; будет работать

Важно, чтобы
при настройке вы указали путь pg-config и geosconfig, и вы НЕ ДОЛЖНЫ включать «без растра», так как RASTER играет главную роль в создании расширения postgis


Для Ubuntu 16.04 выполните эту команду:

sudo apt-get install postgis postgresql-9.6-postgis-2.3-scripts

обратите внимание, что вы должны указать свой номер версии для postgresql (9.6 в моем случае) и postgis (2.3 в моем случае).


Если вы используете brew, удалите PostGIS и переустановите его. Это создаст файлы расширения.



В некоторых дистрибутивах расширения упаковываются в пакет postgresql-contrib. Это, безусловно, верно для RedHat / CenOS, где расширения находятся в postgresql-contrib, где xx — номера magor и вспомогательных выпусков без полных остановок (postgresql95-contrib для postgres 9.5).


Для меня, используя Fedora 25 и pg 9.5, это сработало, когда я сделал следующие изменения:

  • Установить пакет yum postgis

    $ yum установить postgis2_95

  • Загрузите пакет .deb сценариев Postgis

  • Извлеките его и скопируйте каталоги ‘contrib’ и ‘extension’ в распакованном файле usr / share / postgresql / 9.5 по тому же пути в вашем pgsql (возможно, изменив права доступа на).

  • Перезагрузите сервер


В моем случае (Linux Mint 18.1 Serena) мне пришлось удалить posgresql-9.5и postgisзаново установить из репозитория по умолчанию.

sudo apt remove postgis*
sudo apt remove postgresql*

И установите версию 9.6 из репозитория PosgreSQL :

sudo apt install postgresql-9.6 postgresql-9.6-postgis-2.3 postgresql-9.6-postgis-2.3-scripts postgresql-contrib-9.6

Я не уверен, версия имеет какое-либо отношение к отсутствующему postgis.controlфайлу. Но я все равно хотел версию 9.6.

#4643

closed


defect


(fixed)

Reported by: Owned by: strk
Priority: blocker Milestone: PostGIS PostgreSQL
Component: build/upgrade/install Version: master
Keywords: Cc:

Looks like our postgis 3.1 is broken again by PostgreSQL change upstream.

Debbie is showing this error on 3.1.0 (master) run

19:10:38 ERROR:  CREATE EXTENSION ... FROM is no longer supported
19:10:38 LINE 1: CREATE EXTENSION postgis VERSION '3.1.0dev' FROM unpackaged

This must be a test we don’t run in the test run after postgresql is rebuilt since it didn’t error there.

Change History
(18)

Component: postgisbuild/upgrade/install
Owner: changed from pramsey to strk
Milestone: PostGIS 3.1.0PostGIS PostgreSQL
Resolution: fixed
Status: newclosed
Resolution: fixed
Status: closedreopened
Resolution: fixed
Status: reopenedclosed

Note:
See TracTickets
for help on using tickets.

Size:
a
a
a

2021 April 02

Alexander Malykhin

под линуксом smartctl  (smartmontools в дебиано-подобных, в остальных не знаю как пакет называется), под виндой куча вариантов в поиске )

Ну мои копипасты как раз из вывода smartctl

Ну мои копипасты как раз из вывода smartctl

ну так:
231 SSD_Life_Left           0x0000   098   098   011  
98% осталось, как будет 11% — будет «ругаться»

Alexander Malykhin

ну так:
231 SSD_Life_Left           0x0000   098   098   011  
98% осталось, как будет 11% — будет «ругаться»

А, так это проценты))

Ну конкретно в этом параметре да

у вас там 6Тб записано всего :
241 Lifetime_Writes_GiB     0x0032   000   000   000    Old_age   Always       —       6488
6488 — это Гб

ОГРОМНОЕ СПАСИБО! Век живи — век учись))))

пожалуйста

а ресурс 300+ Тб (в спеке нет такой цифры, на nix-е посмотрел, пересчитывать dwpd не хочется)

Коллеги, а кто-нибудь использует под прод 13 версию и 8.3.18 1C ? На линуксе и windows такую ошибку получил

А на 12.5 от постгри (которое 1С) и постгреспро 1с, но клиенты хотят зачем-то 13 🙂

Alexander Malykhin

у вас там 6Тб записано всего :
241 Lifetime_Writes_GiB     0x0032   000   000   000    Old_age   Always       —       6488
6488 — это Гб

Мне и процентов достаточно

Alexander Malykhin

ну так:
231 SSD_Life_Left           0x0000   098   098   011  
98% осталось, как будет 11% — будет «ругаться»

А куда оно обычно ругается в линупсах?

Или journalctl смотреть на ошибки

А куда оно обычно ругается в линупсах?

ну не могу сказать за всех, в debian/ubuntu будет спамить на почту (если настроена) и в сислог

это если не отключено, конечно

Коллеги, а кто-нибудь использует под прод 13 версию и 8.3.18 1C ? На линуксе и windows такую ошибку получил

Мы пытались использовать ПГ13 с 8.3.18, но при добавлении ИБ в кластер 1С получили такую ошибку:

Ошибка при выполнении операции с информационной базой
Ошибка СУБД:
0A000: ERROR:  CREATE EXTENSION … FROM is no longer supported
LINE 1: …reate extension if not exists mchar schema public FROM unpac…

В 13 ПГ запретили FROM unpackaged из-за проблем с безопасностью:
https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=70a77320

Проблема, что базу с версии 9.6 переносили через pg_dump/restore! Если загружать через ДТ — то норм!

Система управления базами данных Postgresql используется для хранения данных в табличной форме. База данных применяет несколько функций к данным, хранящимся в отношениях. Для улучшения и поддержки этих функций в базе данных PostgreSQL есть подход к расширению функциональных возможностей базы данных с помощью объектов SQL.

Эти расширения предназначены для использования в качестве дополнительных операторов для выполнения функций. В PostgreSQL присутствует несколько расширений; некоторые из них описаны в этой статье.

Содержание

  1. Синтаксис создания расширения
  2. Описание синтаксиса
  3. IF NOT EXISTS
  4. Schema_name
  5. CASCADE
  6. Примечания
  7. Создание расширения через pgAdmin
  8. Заключение

Синтаксис создания расширения

CREATE EXTENSION [IF NOT EXISTS ] extensionname
[ WITH ] [ SCHEMA schemaname ]
[ VERSION versionof_extension ]
[ FROM oldversion ]
[ CASCADE ]

Описание синтаксиса

Ключевое слово расширения CREATE создает новое расширение в файле PostgreSQL. В процессе загрузки расширения используются те же привилегии, которые требуются для создания объектов-компонентов. Для этого требуется суперпользователь или владелец, чтобы продолжить.

IF NOT EXISTS

Если какое-либо расширение с тем же именем, которое вы использовали в операторе создания, уже существует, это не вызовет ошибки. Но отображается только идентификатор уведомления, чтобы уведомить пользователя о расширении.

Schema_name

Чтобы установить или загрузить любое расширение, должна существовать схема, в которую вы хотите добавить расширение. Если схема не указана в команде, то по умолчанию используется текущая схема, использующая текущее создание объекта по умолчанию.

CASCADE

Эти функции автоматически устанавливают любое расширение, от которого зависит любое еще не установленное расширение. В то время как зависимости устанавливаются автоматически.

Для процесса реализации откройте оболочку psql, указав имя пользователя и пароль; это продолжится, чтобы начать с подключения базы данных Postgres к пользователю Postgres.

Для процесса реализации откройте оболочку psql,

Как только соединение установлено, теперь вы можете применить любую команду. Ниже мы увидим работу расширения PostgreSQL в базе данных PostgreSQL. Если мы хотим добавить некоторые дополнительные функции или операции в виде расширения PostgreSQL, нам нужно добавить некоторые расширения.

Примечания

Прежде чем использовать команду create extension для загрузки любого расширения в базу данных, необходимо установить файлы, поддерживающие расширения. Предполагается, что расширения, используемые PostgreSQL, защищены от атак, совершенных во время установки.

Это встроенные функции, присутствующие в PostgreSQL. Вам просто нужно добавить их, используя их имя в команде. Например, мы использовали расширение citext. Простой синтаксис, используемый для включения любого расширения в PostgreSQL:

>> CREATE extension <name_of_extension>
>> psql –u db_postgres –d testing
>> CREATE extension citext;

Приведенные выше команды показывают, что PostgreSQL требует прав суперпользователя или владельца для загрузки расширений PostgreSQL. Хотя использование db_postgres не сработало, а расширения не были загружены, мы попытались загрузить расширения с помощью имени пользователя «Postgres».

>> psql –U Postgres –d testing;

Приведенные выше команды показывают, что PostgreSQL

После загрузки мы выбрали уже существующее расширение для загрузки в PostgreSQL. Здесь мы выбрали расширение «citext».

>> CREATE extension citext;

Вы можете видеть, что расширение создано. Чтобы увидеть описание и имена всех расширений, добавленных в Postgres, мы используем ’dx’.

Чтобы увидеть описание и имена всех расширений, добавленны

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

Мы добавили расширение только без указания имени схемы или версии. Но вместе с именем схемы можно добавить расширение, как в примере ниже. Схема — это пространство имен, в котором есть объекты базы данных, такие как таблицы, индексы, типы данных, функции и т. д. Вот почему мы используем имя схемы, чтобы легко получить доступ ко всем функциям данных, присутствующих в схеме. Схема по умолчанию является общедоступной.

>> CREATE extension bloom WITH schema public;

Это расширение создано. Схема выбрана как общедоступная. Снова увидим описание расширений. Полный список будет описывать цель каждого описания, например расширение bloom, которое будет иметь метод доступа к bloom, включая единый файловый индекс.

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

Теперь мы будем загружать расширение с явлением, если оно не существует вместе с именем схемы.

>> CREATE extension IF NOT EXISTS store WITH schema public;

Снова проверьте только что установленное расширение. Это расширение помогает функциональности Postgres улучшать тип данных для хранения наборов ключей и значений.

Это расширение помогает функциональности Postgres

Чтобы удалить расширение, будет использоваться приведенная ниже команда. Например, мы хотим удалить «hstore», чтобы использовать следующую команду.

>> DROP extension hstore;

Есть еще один способ использования команды добавления расширения. В этом подходе мы сначала устанавливаем путь поиска в схеме, а затем создаем расширение в этой конкретной схеме.

>> SET search_path = addons;

>> CREATE extension hstore schema public;

Вы можете видеть, что во-первых, search_path установлен, а сообщение «CREATE EXTENSION» показывает, что расширение создано. Таким образом, расширение добавляется и удаляется из оболочки PostgreSQL.

Создание расширения через pgAdmin

Теперь мы увидим добавление индексов через панель pgAdmin PostgreSQL. Указав пароль, вы перейдете дальше в панель базы данных.

Перейдите к левой панели на приборной панели, разверните параметры сервера и разверните базу данных PostgreSQL; будут показаны все базы данных, откройте соответствующую базу данных, например «Postgres».

к левой панели на приборной панели, разверните

В этом разделе вы найдете возможность расширения; разверните это, тогда будут показаны все созданные расширения.

м разделе вы найдете возможность расшир

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

кнопкой мыши по параметру расширения, открывается раскрывающийся

При выборе опции создания открывается новое окно. Теперь вам нужно заполнить все текстовые поля. Например, выберите имя и раскрывающийся список всех открытых расширений. Мы выбрали расширение «autoinc». Опция комментария не является обязательной; вы можете оставить его пустым.

При выборе опции создания открывается новое

После заполнения общей информации вы можете перейти к части «Определение»; здесь упоминается схема расширения и версия. Мы заполним пространство словом «public» в качестве схемы и версией 1.0.

После заполнения общей информации вы можете перейти к части «Определение»

После добавления сохраните изменения. Затем обновите расширения; вы увидите, что новое расширение добавляется к уже существующему расширению.

атем обновите расширения; вы увидите, что новое расш

В панели pgAdmin, если вы хотите удалить какое-либо расширение, вам нужно щелкнуть правой кнопкой мыши расширение, которое вы хотите удалить. Например, здесь мы хотим удалить параметр «autoinc» и выбрать параметр «УДАЛИТЬ/УДАЛИТЬ» в раскрывающемся списке.

если вы хотите удалить какое-либо расширение, вам ну

После этого появится диалоговое окно, которое подтвердит удаление. Выберите «да», чтобы продолжить процесс удаления.

того появится диалоговое окно, которое подтве

Заключение

Статья о «Postgres create extension» включает в себя процесс создания расширений как в оболочке psql, так и в pgAdmin. Некоторые часто используемые расширения также перечислены в статье. Расширения расширяют функциональные возможности объектов PostgreSQL, которые уже присутствуют в базе данных; кроме того, пользователь должен знать базу данных и создание схемы перед установкой расширений.

Информация находится в Makefile исходного установочного пакета.

Для окон Python:

ifeq ($(PORTNAME), win32)

    pytverstr=$(subst .,,${python_version})
    PYTHONDLL=$(subst ,/,$(WINDIR))/system32/python${pytverstr}.dll

Итак, напишите ответ:

  • WINDIR : C: Windows
  • pytverstr используется в make-файле, имеет параметр для определения версии python
  • PYTHONDLL — расположение dll.

Чтобы проверить версию моей установки, я открываю файл plpython3.dll, расположенный в C: Program Files PostgreSQL 9.4 lib (измените путь в своей среде)

С помощью Notepad ++ и поиска PyUnicode_AsUTF8String версия python dll видна в последнем слове (в моем случае python33.dll)

Проверьте свою установку, чтобы выбрать хороший установщик python

SELECT version();

PostgreSQL 9.4.15, скомпилированный Visual C ++ build 1800, 64-разрядный

Поэтому мне нужно установить Python 33 в 64-битной версии.

изменить 2020-10-02

Вся эта информация также есть в документации к двоичному файлу ..pgsql doc installation-notes.html , см. Заголовок Процедурные языки .

изменить 2021-06-11

После установки хорошей версии Python в вашей системе вам необходимо скопировать ее на C:WindowsSystem32

Замена версии python старым именем не является хорошим решением, потому что у вас может быть librairie, которая не работает с этой версией. Сделайте это, если знаете о рисках. Поэтому, если вам нужна новейшая версия python для plpython, скомпилируйте ее или проверьте компиляцию edb, чтобы проверить, содержит ли она то, что вам нужно. Вы можете запросить эту информацию в ЕАБР.


1

GeoStoneMarten
11 Июн 2021 в 17:02

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • 09f6 ошибка бмв e39
  • 09a0 ошибка пежо 308