Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#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.
Julien.
https://rjuju.github.io/
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
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
Pages : 1