Джерело відразу декількох файлів за допомогою 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; КОМІТЕТ; не працює, вам потрібні напівколонки в кінці кожного \iрядка:
nichochar

0

Я зробив це за допомогою пошуку в unix / linux з шляхом до минулого файлу sql з параметром 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.