Не удается установить расширение hstore для новой созданной схемы - PullRequest
4 голосов
/ 06 июня 2019

У меня есть Ubuntu 18.04 с установленным postgres 9.5.

В моем db "mydb" установлен hstore.Когда я делаю «\ dx store», у меня появляется

List of installed extensions
  Name  | Version | Schema |                   Description                    
--------+---------+--------+--------------------------------------------------

hstore | 1.3     | public | data type for storing sets of (key, value) pairs
(1 row)

Когда я выполняю pg_restore с определенным файлом резервной копии, создается новая схема, также называемая «mydb», но она не содержит «hstore "расширение.Результат команды "\ dx" тот же.hstore уже есть в моем template1.

Сбой pg_restore с

pg_restore: [archiver (db)] не удалось выполнить запрос: ОШИБКА: тип "hstore" не существует

Может кто-нибудь указать, где проблема?

Спасибо

1 Ответ

3 голосов
/ 19 июня 2019

Была ли резервная копия создана с той же версией postgresql?Цикл дамп / восстановление обычно предполагает, что база данных была создана заранее, но дамп должен создавать расширения.Можете ли вы выполнить поиск в резервной копии, чтобы увидеть, содержит ли она директиву для создания расширения для вашей схемы:

     CREATE EXTENSION IF NOT EXISTS hstore WITH SCHEMA public;
  • вам нужно будет использовать команду pg_restore для вывода, например,

    pg_restore mydump.dump|more
    

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

Можете ли вы попробовать следующее для создания hstoreрасширение в схеме mydb перед восстановлением:

     CREATE EXTENSION IF NOT EXISTS hstore WITH SCHEMA mydb;

В качестве альтернативы расширение hstore может быть установлено неправильно.

    # locate hstore|grep postgresql
    # dpkg -S /path/to/hstore.so
...