pgenv2 †
- ローカルマシン上で複数バージョンのPostgreSQLをインストールして管理するためのツール
- テストや開発時に役に立つことを目的として作成
- レプリケーションクラスタを構築したり、動作確認を行なうのにも有用
動作要件 †
- Bash 4.2 or later
インストール †
$ git clone https://github.com/moritetu/pgenv2.git $ cd pgenv2 $ source install.sh
使用方法 †
利用可能なバージョンを表示 †
$ pgenv versions
インストール †
$ pgenv install 10.4 # 11.1をdebugでインストール、ソースやインストール先は11.1debugとする $ pgenv install --alias 11.1debug --debug --g3 11.1
デフォルト使用を10,4にする †
$ pgenv global 10.4
クラスタ †
クラスタ作成 †
$ pgenv cluster -D clusterdir -s standby primary
クラスタ停止 †
$ pgenv cluster -D clusterdir stop -a
クラスタ起動 †
$ pgenv cluster -D clusterdir start -a
クラスタ状態表示 †
$ pgenv cluster -D clusterdir status
クラスタノード追加/削除 †
$ pgenv cluster -D clusterdir ctrl --attach --fork-off primary standby2 $ pgenv cluster -D clusterdir ctrl --dettach standby2
クラスタのログをtail †
# 全てのインスタンスの最新ログをtail $ pgenv cluster -D clusterdir tail -f --all # primaryの最新ログのみtail $ pgenv cluster -D clusterdir tail -f primary # 全てのインスタンスの全てのログをtail $ pgenv cluster -D clusterdir tail -f --all --all-logs
拡張機能 †
拡張機能の雛形を作成
$ pgenv extension init myext
拡張機能をビルド
$ cd myext $ pgenv extension install -v @all
拡張機能のリグレッションテスト
$ pgenv extension run -v @all 'initdb ${ver}data' $ pgenv extension run -v @all 'pg_ctl start -l $ver.log -D ${ver}data -o "-p $((9000+i))"' $ pgenv extension run -v @all 'psql -p $((9000+i)) postgres -c "create extension myext"' $ pgenv extension run -v @all 'psql -p $((9000+i)) postgres -c "select myext()"'