PostgreSQLデータベース初期化とSQL実行を自動化するシェルスクリプト

postgresql-auto-sql-shell
  • URLをコピーしました!

PostgreSQLを使用したシステム開発では、データベースの初期化やロール設定、テーブル・データの投入作業を効率化することが重要です。
本記事では、それらの作業を自動化するシェルスクリプトを紹介します。

目次

シェルスクリプトの全体

このスクリプトは、以下の機能を備えています。

  • データベースの存在確認と新規作成
  • ロール(ユーザー)の存在確認と作成
  • テーブルとシーケンスの削除
  • テーブル権限とシーケンス権限の付与
  • 事前に用意したSQLファイルの実行

以下は、今回紹介する完全なシェルスクリプトです。

スクリプトの解説

1. データベースの存在確認と作成

ここでは、データベースの存在を確認し、存在しない場合に新規作成します。

2. ロールの追加

指定したロールが存在しない場合、新しいロールを作成します。

3. テーブル・シーケンス削除

テーブルやシーケンスの削除処理には、PostgreSQLのDOブロックを使用しています。

実行方法

ファイル配置例(ディレクトリ構成)
  • reset_table.sh
  • ddl
    • 010_create_table_・・・.sql(CREATE TABLEなどのテーブル作成SQLファイル)
  • data
    • 010_insert_data_・・・.sql(INSERT INTOなどのデータ挿入SQLファイル)

SQLファイルは各ディレクトリの昇順で実行されますので、キー制約などがある場合は先頭に番号を付けて任意の順番で実行できるようにしましょう

  1. スクリプトを任意のディレクトリに保存します。
  2. 必要に応じてパラメータを設定します。
  3. 実行権限を付与します:chmod 755 reset_table.sh
  4. スクリプトを実行します:./reset_table.sh

注意点

データベースロール名パスワードは慎重に設定してください。
本番環境で使用する場合はバックアップを取得しておきましょう。
これで、PostgreSQLの初期化を効率的に行えるようになります。
ぜひ活用してください!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次