it-swarm-fr.com

Source plusieurs fichiers à la fois avec psql

Je veux exécuter plusieurs scripts sql séquentiellement avec psql comme une seule transaction pour configurer mon schéma de base de données. Quelle est la meilleure façon de procéder? Dans le passé, je sais que j'avais un script maître contre lequel j'ai exécuté psql qui comprenait les autres fichiers, mais je ne me souviens pas de la syntaxe de ce script.

27
xenoterracide

Votre script pourrait ressembler à ceci:

BEGIN;
\i file1.sql
\i file2.sql
COMMIT;

Ou vous pouvez faire quelque chose comme ça:

cat file1.sql file2.sql | psql -1 -f -
32
Peter Eisentraut

Je l'ai fait en utilisant find dans unix/linux avec le chemin d'accès au fichier sql passé avec le paramètre rep_sql avec l'instruction "read":

find -P ${rep_sql} -type f -name *.sql -execdir psql -d "mabase" -f {} +

Il dit: trouver les fichiers de liens non suivis quel que soit le nom avec ext comme ".sql" et exécuter dans le répertoire du fichier psql fonctionnant avec mabase et exécuter le fichier trouvé.

0
Deun