• ..

JavaScript

    コマンドラインから変数を使う SQL を流す

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