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 Re : pgAdmin4 » pgadmin4 dans un container docker et pg11 en local » 02/01/2019 21:44:26

Cette commande permet d'utiliser pgadmin4 en container sur un cluster pg en local

sudo docker run \
  -d \
  --rm \
  --net=host \
  -e "PGADMIN_DEFAULT_EMAIL=sql.design.company@gmail.com" \
  -e "PGADMIN_DEFAULT_PASSWORD=secret" \
  --name pgadmin_local dpage/pgadmin4

Mais je ne suis pas encore arrivé à avoir 2 pgadmin4 sur docker, un sur pg sur docker et un sur pg sur le host...

Encore moins, à avoir un pgadmin4 sur docker avec 2 clusters...

Ars longa vita brevis

#2 Re : pgAdmin4 » pgadmin4 dans un container docker et pg11 en local » 02/01/2019 17:35:02

@rjuju & @dverite

Effectivement, le problème se trouve au niveau de la configuration de Docker,

Dés que je trouve qqch, je vous le ferai savoir.

Un grand merci à tous deux pour votre attention.

#3 Re : pgAdmin4 » pgadmin4 dans un container docker et pg11 en local » 02/01/2019 14:14:18

Quand je crée le serveur dans pgadmin4 :
Host : 127.0.0.1
Port: 5433 (donné par conninfo. j'avais installé le container pg avant d'installer pg en local)
Maintenance db, username, password : as usual...

et puis :

could not connect to server: Connection refused
Is the server running on host "127.0.0.1" and accepting
TCP/IP connections on port 5433?

Avoir pgadmin4 sur docker qui permet de travailler avec plusieurs clusters pg qui tournent en docker ou non irait à l'encontre de la philosophie docker ?

Merci pour votre attention

#4 Re : pgAdmin4 » pgadmin4 dans un container docker et pg11 en local » 02/01/2019 13:19:31

en bref :
Pgadmin4      PostgreSQL     OK?
---------------------------------------------
Docker           Docker             Yes
Docker           Local                No

#5 Re : pgAdmin4 » pgadmin4 dans un container docker et pg11 en local » 02/01/2019 12:46:10

@dverite
il y a sur le net un grand nombre de sites qui vous donnent votre adresse IP (ex : http://www.mon-ip.com/)

@rjuju
c'est ce que je fais pour la version de pg qui est sur docker et ça marche. Mais pour la version de pg en local (installée avec apt-get), 127.0.0.1 ou l'adresse donnée par l'utilitaire ci-dessus, ça ne marche pas.
cf https://sqldesign.blog/2018/12/23/how-t … nt-volume/

@dverite & @rjuju
le pg_hba.conf est-il correct ? faudrait-il faire qqch au niveau de linux ?
merci pour votre attention et bonne année

#6 pgAdmin4 » pgadmin4 dans un container docker et pg11 en local » 31/12/2018 18:09:39

Michel Depiesse
Réponses : 10

Bonjour,

J'ai installé PostgreSQL 11 dans un conteneur Docker et pgadmin4 dans un autre.

Voir https://sqldesign.blog/2018/12/24/how-t … th-docker/

Ça fonctionne bien.

J'ai installé PostgreSQL 11 en local (Ubuntu 16.04)

Mais je ne peux pas accéder au cluster pg local à partir de pgadmin4 dans mon conteneur.

Unable to connect to server:

could not connect to server: Operation timed out
Is the server running on host "217.39.18.97" and accepting
TCP/IP connections on port 5433?

Adresse IP du local (donnée par google): 217.39.18.97
Adresse IP du conteneur pgadmin4 (donnée par docker inspect): 172.17.0.3
Port du cluster pg local (donné par \ conninfo): 5433

dans pg_hba:
host all all 0.0.0.0/0 md5

Que puis-je faire ?

Bonne année

#7 Re : Migration » Installation des dbs samples » 27/12/2018 23:58:08

Merci pour votre attention.

J'ai enlevé

SET client_encoding = 'LATIN1'

et tout s'est bien passé.

Bonne année à tous dalibiens

md
sqldesign.blog

#8 Migration » Installation des dbs samples » 26/12/2018 01:07:37

Michel Depiesse
Réponses : 2

Bonjour,

Je voudrais installer des samples, world par exemple.

Après avoir créé la db, j'essaie avec

psql -U mchl world < world.sql

cat world.sql | psql -U mchl world

Mais dans les deux cas :

COPY city (id, name, countrycode, district, population) FROM stdin;
1    Kabul    AFG    Kabol    1780000
...

fait boum !

Comment faire ?

Bien à vous tous

#10 Re : pgAdmin4 » Formattage des functions » 14/05/2018 15:57:32

Vous avez raison. Le query

SELECT a.rolname AS "owner",
  n.nspname AS "schema",
  p.proname AS "name",
  pg_get_functiondef(p.oid) AS "definition"
FROM pg_language AS l
JOIN pg_proc AS p
ON p.prolang = l.oid
JOIN pg_namespace AS n
ON p.pronamespace = n.oid
JOIN pg_authid AS a
ON a.oid = p.proowner
WHERE l.lanname = 'plpgsql'
ORDER BY "schema" ASC,
  "name" ASC

m'a donné les informations nécessaires.
Merci à vous

#11 pgAdmin4 » Formattage des functions » 14/05/2018 10:47:29

Michel Depiesse
Réponses : 3

Bonjour,

Pour ma part, j'écris mes programmes en minuscules.

Mais pgadim4 reformatte en mettant les mots-clés en majuscule.

N'y a-t-il pas moyen de dire à pgadmin4 de laisser le programmeur libre de ses choix ?

Merci pour votre attention et bonne journée

#13 Re : Installation » pg_upgrade_cluster 9.5 -> 10 : problème avec les tablespaces » 08/05/2018 10:53:42

J'avais effacé les fichiers PG_10*
J'avais restarté la procédure upgrade.
Tout allait bien mais tout à la fin j'ai reçu des messages horribles.
Et ni la 9.5 ni la 10 n'étaient activés.
J'ai effacé la 9.5 et la 10.
Je réinstalle la 10...

#14 Re : Installation » pg_upgrade_cluster 9.5 -> 10 : problème avec les tablespaces » 08/05/2018 09:07:34

Pourriez-vous me donner un lien vers une page qui expllque comment faire une migration 9.5 (ou .6) vers 10 avec des outils 100% PostgreSQL ?

#15 Re : Installation » pg_upgrade_cluster 9.5 -> 10 : problème avec les tablespaces » 07/05/2018 21:51:40

Merci pour votre attention mais je ne vois pas ce que je dois faire.

Devrais-je effacer les fichiers data dans les tablespaces ?

Mais où irai-je donc chercher les données après que le cluster 10 aura été initialisé et le cluster 9.5 aura été désactivé.

Je croyais que la procédure d'upgrade laissait les données en place.

Que faire ?

#16 Re : Installation » pg_upgrade_cluster 9.5 -> 10 : problème avec les tablespaces » 07/05/2018 18:24:25

Merci pour votre prompte réponse.

Voici l'output de 'sudo pg_ugradecluster 9.5 main' (fin)

.../...
Disabling connections to the new cluster during upgrade...
Roles, databases, schemas, ACLs...
ERROR:  directory "/home/rubin/Production/costs_pg_data/PG_10_201707211" already in use as a tablespace
ERROR:  directory "/home/rubin/Production/contacts_pg_data/PG_10_201707211" already in use as a tablespace
ERROR:  directory "/home/rubin/Production/ADC_pg_data/PG_10_201707211" already in use as a tablespace
ERROR:  directory "/home/rubin/Production/RSC_pg_data/PG_10_201707211" already in use as a tablespace
ERROR:  directory "/home/rubin/Production/sdbx_pg_data/PG_10_201707211" already in use as a tablespace
ERROR:  tablespace "adc" does not exist
ERROR:  database "adc_pg" does not exist
ERROR:  database "adc_pg" does not exist
ERROR:  database "adc_pg" does not exist
ERROR:  database "adc_pg" does not exist
ERROR:  database "adc_pg" does not exist
ERROR:  tablespace "contacts" does not exist
ERROR:  database "contacts" does not exist
ERROR:  database "contacts" does not exist
ERROR:  database "contacts" does not exist
ERROR:  tablespace "costs" does not exist
ERROR:  database "costs" does not exist
ERROR:  database "costs" does not exist
ERROR:  database "costs" does not exist
ERROR:  database "costs" does not exist
ERROR:  database "costs" does not exist
ERROR:  tablespace "sdbx" does not exist
ERROR:  database "kernel" does not exist
ERROR:  database "kernel" does not exist
ERROR:  database "kernel" does not exist
ERROR:  database "kernel" does not exist
ERROR:  database "kernel" does not exist
ERROR:  tablespace "rsc" does not exist
ERROR:  database "rsc_pg" does not exist
ERROR:  database "rsc_pg" does not exist
ERROR:  database "rsc_pg" does not exist
ERROR:  database "rsc_pg" does not exist
ERROR:  database "rsc_pg" does not exist
ERROR:  tablespace "sdbx" does not exist
ERROR:  database "sdbx_ariel" does not exist
ERROR:  database "sdbx_ariel" does not exist
ERROR:  database "sdbx_ariel" does not exist
ERROR:  database "sdbx_ariel" does not exist
ERROR:  tablespace "sdbx" does not exist
 set_config 
------------
 
(1 row)

\connect: FATAL:  database "adc_pg" does not exist
Re-enabling connections to the old cluster...
Re-enabling connections to the new cluster...
Error during cluster dumping, removing new cluster

Voici les tablespaces :

postgres=# \db 
                      List of tablespaces 
   Name    |  Owner   |                Location                  
------------+----------+----------------------------------------- 
adc        | rubin    | /home/rubin/Production/ADC_pg_data 
contacts   | rubin    | /home/rubin/Production/contacts_pg_data 
costs      | rubin    | /home/rubin/Production/costs_pg_data 
pg_default | postgres |  
pg_global  | postgres |  
rsc        | rubin    | /home/rubin/Production/RSC_pg_data                                                                   
sdbx       | rubin    | /home/rubin/Production/sdbx_pg_data                                                                  
(7 rows)                                                         

Et voici le lien entre les databases et les tablespaces :

     Name     | Tablespace  
--------------+------------ 
OfficeMail   | pg_default 
adc_pg       | adc 
contacts     | contacts 
costs        | costs 
kernel       | sdbx 
postgres     | pg_default 
rsc_pg       | rsc 
sdbx_ariel   | sdbx 
sdbx_micheld | sdbx 
template0    | pg_default 
template1    | pg_default 
test         | pg_default

#17 Installation » pg_upgrade_cluster 9.5 -> 10 : problème avec les tablespaces » 07/05/2018 17:11:38

Michel Depiesse
Réponses : 8

Bonjour,

J'utilise la méthode suivante : https://gist.github.com/mdesantis/ebab3 … 894ca0cde2 sur Ubuntu 16.04

Elle a bien marché sur un de mes serveurs.

Mais quand je l'ai appliquée à un serverur où j'ai créé des tablespaces, je reçois des messages tels que

...
ERROR:  tablespace "rsc_pg" does not exist
ERROR:  database "rsc" does not exist
ERROR:  database "rsc" does not exist
ERROR:  database "rsc" does not exist
...

Le cluster 9.5 reste actif mais le 10 n'est pas créé.

Je n'ai pas trouvé grand-chose sur le net. Que faire ?

Merci pour votre attention,
m

#18 Re : PL/pgSQL » DROP DATABASE cannot run inside a transaction block » 19/04/2018 13:18:38

Je comprends à présent. Merci pour vos explications.

Mais si on se connecte à la db postgres, n'y aurait-il pas moyen d'exécuter ces commandes en faisant comprendre à la function qu'il ne s'agit pas d'une transaction.

Par ailleurs, un grand merci à Dalibo, pour la publication des formations !

#19 Re : PL/pgSQL » DROP DATABASE cannot run inside a transaction block » 19/04/2018 09:22:57

@gleu

Je suis heureux qu'une telle tragédie ne vous fasse pas perdre le sourire...

Pourriez-vous me dire en deux mots les raisons pour lesquelles la chose est impossible ?

Il me souvient d'avoir eu des problèmes similaires en Oracle (il y a longtemps).

Par ailleurs, un grand merci à Dalibo pour l'organisation de certifications !

C'est un grand pas en avant !

#20 PL/pgSQL » DROP DATABASE cannot run inside a transaction block » 17/04/2018 18:22:33

Michel Depiesse
Réponses : 5

Bonjour,

J'ai une fonction qui, entre autres, droppe une db et la recrée mais je reçois un message d'horreur !

CREATE OR REPLACE FUNCTION public.recreate_sdbx_user(
	pg_user_name text)
    RETURNS boolean
...
    sql_stmt = 'drop database if exists sdbx_' || pg_user_name;
    
    execute sql_stmt;
...

    sql_stmt =   'create database sdbx_'
    			|| pg_user_name 
                        || ' template sdbx_generic '
                        || ' tablespace sdbx;'
                
    execute sql_stmt;

...
    

et je reçois le message

DROP DATABASE cannot run inside a transaction block

Que faire ,

Merci pour votre attention

#21 Re : pgAdmin4 » QBE pour PostgreSQL » 03/04/2018 10:41:18

ERRATUM

INSERT INTO "FONDATION" (k, l, "Num_support_Code_LIT") VALUES ('m', 'n', "Num_support_Code_LIT");

Le premier Num_support_Code_LIT est le nom de la colonne FK de FONDATION.

Et le second est la valeur de la PK de SUPPORT.

#22 Re : pgAdmin4 » QBE pour PostgreSQL » 03/04/2018 10:02:52

Quand vous faites un insert, il est est inutile de spécifier la PK car sa valeur lui sera donnée automatiquement par le serial.

Vous faites

 
INSERT INTO "SUPPORT" (x, y, z) VALUES ('a', 'b', 'c')   RETURNING "Num_support_Code_LIT" ;

INSERT INTO" FONDATION" (k, l) VALUES ('m', 'n', "Num_support_Code_LIT");

La PK de SUPPORT est un serial mais la FK dans FONDATIONS est un integer qui ne s'incrémente pas automatiquement !

N'oubliez pas les " si vous mettez des majuscules dans les identifiants.

#23 Re : pgAdmin4 » QBE pour PostgreSQL » 22/03/2018 17:21:57

Comment faire des jointures entre tables en passant par des requêtes SQL ?

C'est tout un art !

Il faut bien comprendre les dépendances foncionnelles, la 3ième forme normale, savoir que les PKs et les FKs doivent être des integer SERIAL...

Un petit cours de logique mathématique sur le calcul des prédicats fait beaucoup de bien !

Et ensuite travailler dur !

Bien à vous, Madame EvaNouNou

#24 pgAdmin4 » QBE pour PostgreSQL » 21/03/2018 18:16:06

Michel Depiesse
Réponses : 5

Bonjour,

La Query By Example a disparu, me semble-t-il, de pgadmin4.

Pourriez-vous me conseiller un logiciel, même propriaitaire qui pourrait servir d'interface utilisateur ?

Il ne faut pas un outil d'administration. Un logiciel cool et sympa pour voir les données et faire des requêtes suffira !

Merci pour votre attention

#25 Re : Général » [RESOLU] Mise en place de Foreign Data Wrappers Oracle » 02/03/2018 13:51:50

@gleu

Pourriez-vous préciser votre propos ?

Soit une base de données D avec deux tables foreign x et y qui proviennent de la base de données E.

Vous dites que "la jointure peut être envoyée au serveur distant".

Comment ? Par quel mécanisme ?

Pied de page des forums

Propulsé par FluxBB