Исходники нескольких файлов одновременно с PSQL


27

Я хочу выполнить несколько сценариев SQL последовательно с psqlодной транзакцией для настройки схемы базы данных. Каков наилучший способ сделать это? В прошлом я знал, что у меня был главный сценарий, с которым я работал psql, включая другие файлы, однако я не помню синтаксис этого сценария.

Ответы:


32

Ваш скрипт может выглядеть так:

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

Или вы можете сделать что-то вроде этого:

cat file1.sql file2.sql | psql -1 -f -

1
Понимание труб в оболочке помогло мне получить последнюю команду.
ma11hew28

Ваш пример с BEGIN; COMMIT; не работает, вам нужны полуколонцы в конце каждой \iстроки:
nichochar

0

Я сделал это используя find в unix / linux с путем к файлу sql past с параметром rep_sql с инструкцией read:

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

В нем говорится: найдите не следующие по ссылкам файлы независимо от имени с ext как «.sql» и выполните в каталоге файл psql, работающий с mabase, и выполните найденный файл.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.