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.
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 -
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.