課題
大量のsqlファイルが保存されてあるディレクトリがある。
一つ一つ実行するのは面倒くさい。
これらをまとめて実行する。
TL;DR psql version
exec-sql.sh
#!/bin/bash
## EDIT HERE
DIR_NAME=./sql_files
find $DIR_NAME -type f -name '*.sql' | sort | while read -r f; do
echo "==> $f"
PGPASSWORD='hogehoge' psql -h localhost -p 5432 -U test_user -d test_db --set=ON_ERROR_STOP=on -f "$f" || exit 1
done
- ポイント
- -h, -p オプションでホストとポート番号を指定してあげる。
- 環境変数PGPASSWORDをセットすることで、毎回パスワードを聞かれない。
実行方法
$ chmod +x exec-sql.sh
$ ./exec-sql.sh