PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 09/09/2014 15:21:01

masterpastek
Membre

FATAL: database does not exist

Bonjour,


Je me connecte sous un utilisateur à ma bdd :


psql -U mon_utilisateur ma_bdd


puis je fais


DROP FUNCTION ma_fonction(); 


la console psql me retourne :


must be owner of function ma_fonction


Je fais alors


SELECT p.proname, u.usename 
    FROM pg_proc as p 
    INNER JOIN pg_user as u ON p.proowner = u.usesysid 
    WHERE p.proname = ma_fonction'; 
         proname          | usename 
--------------------------+----------
ma_fonction             | postgres

je vois que la fonction appartient à postgres, je me connecte alors en psql sous postgres :


psql -U postgres

et là je fais

ALTER FUNCTION ma_fonction() OWNER TO mon_utilisateur;
ERROR:  role "mon_utilisateur" does not exist


je fais alors


SELECT p.proname, u.usename 
    FROM pg_proc as p                                                                                                                                                                                     
    INNER JOIN pg_user as u ON p.proowner = u.usesysid                                                                                                                                                     
    WHERE p.proname = ma_fonction';                                                                                                                                                         
proname | usename                                                                                                                                                                                         
---------+---------                                                                                                                                                                                       
(0 rows)       


je quitte la console et essaie de me connecter à ma_bdd sous postgres :


psql -U postgres ma_bdd
psql: FATAL:  database "ma_bdd" does not exist

j'ouvre une console sans spécifier de base en postgres :

psql -U postgres
postgres=# ALTER USER mon_utilisateur WITH SUPERUSER;                                                                                                                                                             
ERROR:  role "mon_utilisateur" does not exist   


bref postgres ne reconnaît pas l'existence de la fonction, ni celle de ma bdd ni celle de mon utilisateur.


Vous pourriez m'aider à supprimer cette fonction ?

Hors ligne

#2 09/09/2014 20:06:03

rjuju
Administrateur

Re : FATAL: database does not exist

Bonjour,

Pour le premier problème, c'est normal que la fonction ne soit pas trouvée sur une autre base que "ma_bdd". Pour les autres problèmes, cela semble être lié à des variables d'environnement différentes, si la connexion est faîte depuis un utilisateur système différent par exemple.

Hors ligne

#3 10/09/2014 09:52:21

masterpastek
Membre

Re : FATAL: database does not exist

Merci pour ta réponse, tu m'a mis sur la voie et  j'ai trouvé la solution à mon problème :


psql -U mon_utilisateur ma_bdd


puis


ma_bdd=> \c ma_bdd postgres
psql (8.4.17)
You are now connected to database "ma_bdd" as user "postgres".


c'est avec \c que mon problème s'est donc résolu.
Par la suite j'ai pu supprimer ma fonction normalement avec DROP.


Où dois-je marquer mon pb comme étant résolu dans le forum ?

Dernière modification par masterpastek (10/09/2014 09:55:46)

Hors ligne

#4 10/09/2014 21:32:40

gleu
Administrateur

Re : FATAL: database does not exist

> Où dois-je marquer mon pb comme étant résolu dans le forum ?

Il n'y a pas de moyen de le faire (et c'est très bien ainsi). Mais si vous voulez vraiment le faire, il faut modifier le titre de la discussion.


Guillaume.

Hors ligne

#5 16/02/2018 13:27:48

comaco
Membre

Re : FATAL: database does not exist

masterpastek a écrit :

Où dois-je marquer mon pb comme étant résolu dans le forum ?

Sur votre premier message, il y a un lien "modifier". En cliquant dessus, vous pouvez modifier le sujet de la discussion pour ajouter "[Résolu]"

Hors ligne

Pied de page des forums