-v, --set, --variable
オプションを使います。その後key=value
の形で設定していきます。
設定した値は.sql
ファイルの中で:key
と:
を頭に付けて参照できます。
foo というスキーマに hoge テーブルを作る
foo
は変数で渡す形で書くとこのような SQL になります。
create table :schema.hoge ();
-- CREATE TABLE
この内容が書かれている.sql
ファイルは、schema
という変数を定義した上で実行されることを期待しています。そのように変数を実行し、かつ SQL を流すコマンドは以下です。
psql -v schema=foo < create-hoge.sql
# CREATE TABLE
ちゃんとできていればいい感じです。
psql -c '\dt foo.*'
# List of relations
# Schema | Name | Type | Owner
# --------+------+-------+----------
# foo | hoge | table | postgres
# (1 row)