PostgreSQLでコマンドラインからSQLファイルを実行する
概要
PostgreSQLでコマンドラインから、特定のスキーマに対してSQLを発行する方法
準備
psql postgres
等で適当なデータベースに入ってroleの作成
create role commander with login;
コマンドラインからデータベースの作成
$ createdb --owner commander command_test
スキーマの作成
psql -U commander -d command_test
で作成したデータベースに入って、スキーマの作成
create schema sample;
コマンドラインから実行
SQLファイルの作成
test.sql
という名前でSQLファイルを作成する。
psqlからスキーマの指定方法がわからなかったので、スキーマ切り替えもSQLファイルで行う。
-- スキーマ切り替え SET search_path = sample; -- スキーマ表示 select current_schema(); -- サンプル実行 select 1 as hoge;
実行
# psql -d {データベース名} -U {ユーザ名} -f {ファイル名} psql -d command_test -U commander -f test.sql
結果
こんな感じになります。
SET current_schema ---------------- sample (1 row) hoge ------ 1 (1 row)