Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
#1 27/09/2013 16:30:34
- tig12
- Membre
extension hstore valable pour tous les schemas d'une base (9.1)
Bonjour,
je cherche à installer l'extension hstore et à pouvoir l'utiliser sur tous les schemas d'une base
voila ce que j'ai essayé :
createdb dbtest
psql dbtest
dbtest=# create extension hstore;
WARNING: => is deprecated as an operator name
DETAIL: This name may be disallowed altogether in future versions of PostgreSQL.
CREATE EXTENSION
dbtest=# create table toto(fields hstore);
CREATE TABLE
jusque là tout va bien, je peux utiliser hstore sur le schema public
maintenant, j'essaye de l'utiliser sur un autre schema :
dbtest=# create schema test1;
CREATE SCHEMA
dbtest=# set schema 'test1';
SET
dbtest=# create table toto1(fields hstore);
ERROR: type "hstore" does not exist
LINE 1: create table toto1(fields hstore);
j'arrive à utiliser hstore sur le schema test1 en faisant :
dbtest=# alter extension hstore set schema test1;
ALTER EXTENSION
dbtest=# create table toto1(fields hstore);
CREATE TABLE
ok, mais hstore ne marche plus sur le schema 'public' :
dbtest=# set schema 'public';
SET
dbtest=# create table toto2(fields hstore);
ERROR: type "hstore" does not exist
LINE 1: create table toto2(fields hstore);
il faut de nouveau faire un alter extension
dbtest=# alter extension hstore set schema public;
ALTER EXTENSION
dbtest=# create table toto2(fields hstore);
CREATE TABLE
Donc ma question est : existe-t-il un moyen de faire fonctionner hstore sur tous les schemas d'une base ?
J'ai essayé aussi :
alter extension hstore add schema test1;
mais ça ne permet pas de passer d'un schema à l'autre en utilisant hstore sans faire un alter extension à chaque fois.
Hors ligne
#2 27/09/2013 16:37:11
- rjuju
- Administrateur
Re : extension hstore valable pour tous les schemas d'une base (9.1)
Bonjour,
il suffit de préfixer le nom du schéma (par exemple CREATE TABLE toto(field public.hstore); ), ou alors utiliser plusieurs schémas dans le search_path (par exemple SET search_path 'test1,public';), auquel cas la recherche se fera dans l'ordre ce des schémas.
Julien.
https://rjuju.github.io/
Hors ligne
#3 27/09/2013 17:12:36
- tig12
- Membre
Re : extension hstore valable pour tous les schemas d'une base (9.1)
Impeccable
j'ai essayé, les deux solutions marchent.
la syntaxe pour set search path est
set search_path to test1,public;
Merci beaucoup
Hors ligne