ローカルの複数SQLファイルをRedshiftクラスター上で実行する
前提
- 「postgresql-9.3.25-1-windows-x64」インストール済(psqlのみ利用)
- PostgreSQLへパスを通している(例.C:\Program Files\PostgreSQL\9.3\bin)
- Redshiftクラスターへネットワークアクセス可能な状態である
環境
- Windows 10 Pro 64bit
手順
- batファイル、sqlファイルを格納する任意のフォルダをローカルに作成する。
以降、「C:\Users\【ユーザー名】\Desktop\redshift」とした前提で進める。 - 「C:\Users\【ユーザー名】\Desktop\redshift」フォルダ配下に「sql」フォルダを作成する。
- 「sql」フォルダに実行したいsqlファイルを全て格納する。
- 「C:\Users\【ユーザー名】\Desktop\redshift」フォルダ配下に以下のbatファイルを作成する。
【】は各自環境の値で置き換え。 - 以下のbatファイルを実行する。以上。
@echo off
set host=【Redshiftクラスターエンドポイント】
set port=【ポート】
set db_name=【データベース名】
set user=【マスターユーザー名】
set password=【マスターユーザーパスワード】
set PGCLIENTENCODING=UTF8
set PGPASSWORD=%password%
set current_directory=%~dp0
cd %current_directory%\sql
for %%f in (*.sql) do (
psql -h %host% -p %port% -U %user% -d %db_name% -f %%f -a
)
pause
Share