it-swarm.it

Sorgi diversi file contemporaneamente con psql

Voglio eseguire diversi script sql in sequenza con psql come singola transazione per impostare il mio schema di database. Qual è il modo migliore per farlo? In passato so di avere uno script master su cui ho eseguito psql che includeva gli altri file, tuttavia non ricordo la sintassi di questo script.

27
xenoterracide

La tua sceneggiatura potrebbe apparire così:

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

Oppure potresti fare qualcosa del genere:

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

L'ho fatto usando find in unix/linux con il percorso del file sql passato con il parametro rep_sql con istruzione "read":

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

Dice: trova non seguendo i file dei collegamenti qualunque sia il nome con ext come ".sql" ed esegui nella directory del file psql lavorando con mabase ed esegui il file trovato.

0
Deun