create extension failed

Поиск
Список
Период
Сортировка
Искать

create extension failed

От:
alp@sfedu.ru
Дата:
Hello.
I have one test database, which was upgraded from 8.4 to 9.0. Now I've  
upgraded it to 9.1. I'm trying to create extension for hstore.

db=# CREATE EXTENSION hstore WITH SCHEMA public FROM unpackaged;
ERROR:  function hstore_recv(internal) does not exist

I suppose, that hstore_recv was added in 9.0, but I didn't update  
hstore extension after upgrading from 8.4 to 9.0. Is this assumption  
correct? How am I supposed to deal with this situation?

Finally, I was able to create extension after the following:
sed -e 's|MODULE_PATHNAME|$libdir/hstore|' <  
/usr/local/share/postgresql/extension/hstore--1.0.sql | su pgsql -c  
'psql -d db '
db=# CREATE EXTENSION hstore WITH SCHEMA public FROM unpackaged;

I'm not sure if it was a right thing...

-- 
С уважением,
Александр Пыхалов,
системный администратор ЮГИНФО ЮФУ

Re: create extension failed

От:
Craig Ringer <ringerc@ringerc.id.au>
Дата:
On 09/22/2011 04:40 AM, alp@sfedu.ru wrote:
> Hello.
> I have one test database, which was upgraded from 8.4 to 9.0. Now I've 
> upgraded it to 9.1. I'm trying to create extension for hstore.
>
> db=# CREATE EXTENSION hstore WITH SCHEMA public FROM unpackaged;
> ERROR:  function hstore_recv(internal) does not exist
>
> I suppose, that hstore_recv was added in 9.0, but I didn't update 
> hstore extension after upgrading from 8.4 to 9.0. Is this assumption 
> correct? How am I supposed to deal with this situation?

I think the idea is that you bring your schema up to match the 9.0 
hstore module, just like you would when upgrading without extensions. 
*then* you create extension ... from unpackaged to wrap it as an extension.

I get the impression the documentation could cover this better, as 
people seem to (perhaps reasonably) assume that "from unpackaged" is for 
upgrades from older versions of the contrib modules. It can do that, but 
only if appropriate upgrade scripts are written for the older versions 
of the modules.

--
Craig Ringer

FAQ