psqlで複数のファイルを一度に入手する


27

psqlデータベーススキーマを設定するための単一のトランザクションとして、複数のSQLスクリプトを順番に実行したいと思います。これを行う最良の方法は何ですか?過去に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のfindを使用して、 "read"命令でrep_sqlパラメーターを使用して過去のファイルsqlへのパスを指定しました。

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

extが«.sql»のような名前のファイルをリンクしていないことを見つけ、mabaseで動作するファイルpsqlのディレクトリで実行し、見つかったファイルを実行します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.