psql LogIn後にスキーマを変更し、外部のSQL文を実行する

他のDBのTableをコピーしたりする際にに、SQL文でImportする場合など
psql LogIn後、SQL文のFileを実行する場合がある。

その手順をメモ

ssh で LogIn

現在のディレクトリとSQL File の配置場所(ディレクトリ)を把握しておく

psqlでPostgreSqlに接続

$ psql -h localhost -U user_name -d db_name

現在のスキーマを確認
db_name=# select current_schema();

必要であればスキーマ変更
db_name=# SET search_path = schema_name;

スキーマが変更されたことを確認
db_name=# select current_schema();

SQLファイルを実行
db_name=# \i /*****/sql.sql;

/*****/sql.sql は実行するSQL File 名
Full Path でも相対Path でも OK
** 相対Path の場合、psql に login したディレクトリからの相対位置

psqlからLogOut ( Exit)
db_name=# \q

psql にLogINせずに、一時的にDataBaseに接続して実行する場合

$ psql -h localhost -U user_name -d db_name < /*****/sql.sql 要は /*****/sql.sql を psql を通じて PostgreSQL DataBase に流し込むイメージ