Vous n'êtes pas identifié(e).
Pages : 1
Salut
J'utilise la commande suivante...
"chemin\pg_dump.exe" --host localhost --port xxxx --username "monuser" -T '*.t*' --format plain --schema-only --encoding UTF8 --file "cheminsave\schema_monschema.sql" --schema "monschema" "mabase"
pour exporter le DDL de ma base (par schéma) en excluant les tables dont les noms commencent par t.
J'utilise pour cela l'option -T '*.t*' ou --exclude-table='*.t*'
Mais j’obtiens toujours le DDL des tables en question.
Qu'ai-je donc raté?
@+
Hors ligne
$ pg_dump -s | ag t1
-- Name: t1; Type: TABLE; Schema: ns1; Owner: rjuju
CREATE TABLE ns1.t1 (
ALTER TABLE ns1.t1 OWNER TO rjuju;
-- Name: t1; Type: TABLE; Schema: public; Owner: rjuju
CREATE TABLE public.t1 (
ALTER TABLE public.t1 OWNER TO rjuju;
$ pg_dump -s -T "*.t*" | ag t1 | wc -l
0
Aucune idée de pourquoi cela ne marche pas pour vous. J'imagine que windows interprète différemment la ligne de commande. Essayez de chercher de ce côté là.
Julien.
https://rjuju.github.io/
Hors ligne
Merci
Votre réponse m'a mis sur le chemin.
Le problème c'est qu'il faut double quotes au lieu de simple. Mais la documentation emplois le simple quote.
-T '*.t*'
@+
Hors ligne
La documentation montre une utilisation sous GNU/Linux. Je ne pense pas que changer la documentation pour utiliser des guillemets doubles plutôt que simple soit une bonne idée, car la norme, à ma connaissance, est :
- guillemet simple : le contenu est utilisé tel quel
- guillemet double : le contenu est "interprété" (variable résolue etc etc)
Et donc utiliser par exemple un $ (ou % sur window je crois) avec des guillemets doubles n'aurait pas le comportement attendu.
Le problème ici est que windows fait apparemment l'inverse, ou autre peut être chose. Bref, le problème ne vient pas de pg_dump ni de postgres ni de la documentation mais de windows. Malheureusement, lorsqu'il s'agit d'utilitaires en lignes de commandes les utilisateurs sont censé connaître le fonctionnement de leur shell / OS.
Julien.
https://rjuju.github.io/
Hors ligne
La documentation montre une utilisation sous GNU/Linux. Je ne pense pas que changer la documentation pour utiliser des guillemets doubles plutôt que simple soit une bonne idée, car la norme, à ma connaissance, est :
- guillemet simple : le contenu est utilisé tel quel
- guillemet double : le contenu est "interprété" (variable résolue etc etc)Et donc utiliser par exemple un $ (ou % sur window je crois) avec des guillemets doubles n'aurait pas le comportement attendu.
Le problème ici est que windows fait apparemment l'inverse, ou autre peut être chose. Bref, le problème ne vient pas de pg_dump ni de postgres ni de la documentation mais de windows. Malheureusement, lorsqu'il s'agit d'utilitaires en lignes de commandes les utilisateurs sont censé connaître le fonctionnement de leur shell / OS.
Merci c'est noté
Hors ligne
Bonjour,
Si votre version de windows le permet vous pouvez lancer la commande dans une console PowerShell qui est plus conforme au standard, voici une requête que j'ai testée :
c:\prg\pg13\bin\pg_dump.exe --host 192.168.x.x --port 5432 --username toto -T '*.t*' --format plain --schema-only --encoding UTF8 --file .\test.sql --schema monschema mabase
Le fichier test.sql contient les tables et vues du schema monschema sauf celles dont le nom commence par un 't'.
Hors ligne
Merci jmarsac
ça marche très bien avec PowerShell
@+
Hors ligne
Pages : 1