Symfoware

Symfowareについての考察blog

jenkinsでデータベースのバックアップとデータ更新の実行ジョブ

jenkinsで、
・テーブル単位でデータベースのバックアップ
・バックアップ後、データの更新
・バックアップ、更新するデータはファイルに記載しアップロード
ということができるか調べてみました。



ビルドのパラメーター化



データベースへの接続文字列を「文字列」のパラメーターとして定義しておきました。
また、「ファイル」のパラメーターを追加し、
ファイルをアップロードできるようにしておきます。

672_01.png




ビルド



ビルドでは、「シェルの実行」でアップロードしたファイルを実行するように指定します。

アップロードされたファイルはワークスペースに保存されます。
ワークスペースのパスは「$WORKSPACE」という環境変数で定義されています。

アップロードしたファイルは、元のファイル名が何であれ、ファイルパラメーターで
指定したファイル名に変換され、ワークスペースに保存されます。
今回は、ファイルパラメーターで「QUERY」と指定したので、以下のような定義になります。


/bin/sh $WORKSPACE/QUERY



672_02.png


ビルド後の処理では、ワークスペースに出力するテーブルのバックアップファイルを
成果物として保存するよう指定します。

これでビルド結果の履歴と共にバックアップファイルが保存されます。

ワークスペースはクリアされることが無いため、バックアップファイルは貯まる一方です。
成果物として保存した後は不要なので、ワークスペースの削除を行います。

「Workspace Cleanup Plugin」というプラグインを導入。
Workspace Cleanup Plugin

ビルド後にワークスペースを削除するよう構成しました。

672_03.png





アップロードするファイル



アップロードするファイルはこんな感じになります。


mysqldump $SQL_CONNECT t1 > $WORKSPACE/t1.sql

mysql $SQL_CONNECT <<_EOD

insert into t1 values(4, 'test4');
insert into t1 values(5, 'test5');

_EOD




ワークスペースにt1テーブルのバックアップを取得。
その後、データの追加を行っています。






ビルドの実行




上記で作成したファイルを指定してビルドを実行します。

672_04.png


狙い通り、ビルドにバックアップファイルと実行したクエリーが保存されました。

672_05.png


関連記事

テーマ:サーバ - ジャンル:コンピュータ

  1. 2016/02/24(水) 23:16:15|
  2. 備忘録
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<Debian 8にnginx 1.9をソースからstreamモジュール付きでインストール | ホーム | Debian 8にjenkinsをapt-getでインストール>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/1856-7a00fa9f
この記事にトラックバックする(FC2ブログユーザー)