it-swarm-eu.dev

Zdroj několika souborů najednou s psql

Chci provést několik skriptů sql postupně s psql jako jednu transakci pro nastavení mého databázového schématu. Jaký je nejlepší způsob, jak toho dosáhnout? V minulosti vím, že jsem měl hlavní skript, který jsem běžel psql proti tomu, který zahrnoval ostatní soubory, ale nepamatuji si syntaxi tohoto skriptu.

27
xenoterracide

Váš skript by mohl vypadat takto:

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

Nebo byste mohli udělat něco takového:

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

Udělal jsem to pomocí find v unix/linux s cestou k souboru sql minulosti s parametrem rep_sql s instrukcí "read":

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

Říká: najděte nesledující odkazy soubory bez ohledu na jméno s ext jako ".sql" a spusťte v adresáři souboru psql, který pracuje s mabase a spusťte nalezený soubor.

0
Deun