newdwh2021/ecs/restore-dbdump

ダンプ復元スクリプト

概要

当処理は特定の機能で利用するものではなく、共通処理として要件に応じて実行することを想定している。

環境情報

  • Python 3.9
  • MySQL 8.23
  • VSCode

環境構築

  • Python の構築

    • Merck_NewDWH 開発 2021 の Wiki、Python 環境構築を参照
      • 「Pipenv の導入」までを行っておくこと
    • 構築完了後、プロジェクト配下で以下のコマンドを実行し、Python の仮想環境を作成する
      • pipenv install --dev --python <pyenvでインストールしたpythonバージョン>
      • この手順で出力される仮想環境のパスは、後述する VSCode の設定手順で使用するため、控えておく
  • MySQL の環境構築

    • Windows の場合、以下のリンクからダウンロードする
    • Docker を利用する場合、「newsdwh-tools」リポジトリの MySQL 設定を使用すると便利
      • 「crm-table-to-ddl」フォルダ内で以下のコマンドを実行すると
    • データを投入する
      • 立ち上げたデータベースに「src05」スキーマを作成する
      • ローカル開発用データをダウンロードし、mysql コマンドを使用して復元する
        • mysql -h <ホスト名> -P <ポート> -u <ユーザー名> -p src05 < src05_dump.sql
  • 環境変数の設定

    • 「.env.example」ファイルをコピーし、「.env」ファイルを作成する
    • 環境変数を設定する。設定内容は PRJ メンバーより共有を受けてください
  • VSCode の設定

    • 「.vscode/recommended_settings.json」ファイルをコピーし、「settings.json」ファイルを作成する
    • 「python.defaultInterpreterPath」を、Python の構築手順で作成した仮想環境のパスに変更する

実行

  • VSCode 上で「F5」キーを押下すると、バッチ処理が起動する。
  • 「entrypoint.py」が、バッチ処理のエントリーポイント。
  • 実際の処理は、「src/restore_backup.py」で行っている。

フォルダ構成

.
├── .env.example                  -- ローカル実行用の環境変数のサンプル値。
├── .dockerignore                 -- docker build時のコンテキストに含めるファイルの抑制リスト
├── .gitignore                    -- Git差分管理除外リスト
├── Dockerfile                    -- Dockerイメージ作成用
├── Pipfile                       -- pythonの依存関係管理
├── Pipfile.lock                  -- 依存関係バージョン固定
├── README.md                     -- 当ファイル
├── entrypoint.py                 -- エントリーポイントとなるファイル
├── mysql_dpkg_selection.txt      -- Dockerイメージでdpkgを使うときに外部から注入する選択値
└── src                           -- ソースコードフォルダ
    ├── logging
    │   └── get_logger.py         -- ロガー
    ├── restore_backup.py         -- dump復元処理本体
    └── system_var
        ├── constants.py          -- 定数ファイル
        └── environment.py        -- 環境変数ファイル