Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / db restore hstore проблема / 12 сообщений из 12, страница 1 из 1
18.01.2018, 12:28
    #39586352
ipvinner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
db restore hstore проблема
Здравствуйте. Пытаюсь обновить базу с 9.0 до 10 версии, при restore данных ошибка:
Код: plsql
1.
2.
ERROR:  operator does not exist: public.hstore || public.hstore
LINE 1: SELECT public.hstore(NEW)::public.hstore || audit_Rec::publi...



При этом создал для этой базы extension командой:
Код: sql
1.
 create extension hstore;



search path настроены следующим образом:
Код: sql
1.
2.
3.
4.
SHOW search_path;
          search_path          
-------------------------------
 pg_catalog, phone, net, public
...
Рейтинг: 0 / 0
18.01.2018, 15:08
    #39586488
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
db restore hstore проблема
ipvinner,

пишите подробнее что и как делаете. Оператор || из hstore в 10 сам по себе никуда не девался.
...
Рейтинг: 0 / 0
18.01.2018, 15:10
    #39586489
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
db restore hstore проблема
А вот в 9.0 механизма create extension ещё не было, поэтому нужны подробности как именно обновляете.
...
Рейтинг: 0 / 0
18.01.2018, 17:00
    #39586568
ipvinner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
db restore hstore проблема
Melkij,
на сервер, где установлен 9.0
Код: sql
1.
pg_dump -E unicode -Fc -f db.pgdump db



На сервере 10.
Код: sql
1.
pg_restore -1 db.pgdump -d db 2>&1 | tee restore_log
...
Рейтинг: 0 / 0
18.01.2018, 17:11
    #39586571
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
db restore hstore проблема
ipvinner,

Посмотрите в pg_dump -s db - операторы hstore должны быть в дампе и так. Других ошибок не было?
Попробуйте в новую базу (без расширений) восстановить дамп, а затем уже нормально собрать extension через
Код: sql
1.
CREATE EXTENSION hstore SCHEMA public FROM unpackaged;


Важно имя схемы указать правильно.
...
Рейтинг: 0 / 0
19.01.2018, 00:14
    #39586753
Ы2
Ы2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
db restore hstore проблема
ipvinner, вам надо было сначала установить все нужные расширения, а потом уже восстанавливать базу.
...
Рейтинг: 0 / 0
19.01.2018, 14:05
    #39587088
ipvinner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
db restore hstore проблема
Ы2,

Какие именно? Я собрал contrib через
Код: sql
1.
cd contrib && make all && make install


hstore входит в него
...
Рейтинг: 0 / 0
19.01.2018, 14:07
    #39587090
ipvinner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
db restore hstore проблема
Melkij,

Так я сначала и пробывал в базу чистую, без установки расширения восстанавливаться. Ошибка такая же.
...
Рейтинг: 0 / 0
19.01.2018, 16:57
    #39587251
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
db restore hstore проблема
ipvinnerMelkij,

Так я сначала и пробывал в базу чистую, без установки расширения восстанавливаться. Ошибка такая же.

А сделайте в базе чистой еще раз
create extension hstore;

потом в ней же

select '{1=>2}'::public.hstore || '{1=>2}'::public.hstore;

(проверить что все работает)


потом восстановить в нее вашу базу (пусть даже с ошибками)
и выполнить
select '{1=>2}'::public.hstore || '{1=>2}'::public.hstore;
еще раз чтобы проверить что оператор остался на месте или нет.

Дальше смотря по итогам можно будет думать что такого у вас в dump и в старой базе вызывает такое поведение.
Кстати - восстанавливайте только схему базы для анализа проблемы этого будет достаточно а тестировать станет сильно проще.
...
Рейтинг: 0 / 0
19.01.2018, 17:24
    #39587277
ipvinner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
db restore hstore проблема
Maxim Boguk,


psql testing;

Код: sql
1.
2.
3.
4.
5.
testing=# create extension hstore;
CREATE EXTENSION
testing=# select '{1=>2}'::public.hstore || '{1=>2}'::public.hstore;
ERROR:  type "public.hstore" does not exist
LINE 1: select '{1=>2}'::public.hstore || '{1=>2}'::public.hstore;


^


extension создается, а запрос с той же ошибкой. так схема как раз и восстанавливается, а вот данные нет.
...
Рейтинг: 0 / 0
19.01.2018, 17:38
    #39587280
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
db restore hstore проблема
ipvinner,

замечу что ошибка не та же самая. И надо разбираться с новой базой, потому что запрос ошибку давать не должен был при нормальном hstore:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
postgres=# create extension hstore;
CREATE EXTENSION
postgres=# select '{1=>2}'::public.hstore || '{1=>2}'::public.hstore;
  ?column?  
------------
 "{1"=>"2}"
(1 строка)

postgres=# select version();
                                         version                                         
-----------------------------------------------------------------------------------------
 PostgreSQL 10.1 on x86_64-pc-linux-gnu, compiled by gcc (Debian 4.9.2-10) 4.9.2, 64-bit

Покажите
Код: sql
1.
select nspname, typname from pg_type join pg_namespace ns on ns.oid = typnamespace where typname = 'hstore';


после create extension hstore, что ли.
И нет ли чего интересного в логах базы?
...
Рейтинг: 0 / 0
19.01.2018, 17:39
    #39587281
ipvinner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
db restore hstore проблема
У меня база с postgis и восстанавливал схему через скрипт /usr/local/pgsql/share/contrib/postgis-2.4/postgis_restore.pl. Оказалось, что этот скрипт что-то делает, после чего перестает работать корректно hstore.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / db restore hstore проблема / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]