ITの隊長のブログ

ITの隊長のブログです。Rubyを使って仕事しています。最近も色々やっているお(^ω^ = ^ω^)

gitでデータベースのデータをバージョン管理する

スポンサードリンク

データベースのデータをバックアップするのってみんなどうしています?

大体Shellを使ってコマンドでデータベースをダンプして日付毎にファイル作成しているよね?

でも、容量圧迫するのは将来的に見えているし、できれば他のサーバへアップロードしないとそのサーバダウンしたときが怖いしと色々不安なわけよ。

そこで、無料のサービスにホストすればいいんじゃねと思うわけですよね。

前思いついたことはGoogleDriveにアップロードすればいいかなと。

aipacommander.hatenablog.jp

でも、5GB無料なだけでそれ以降のことは考えていない。

それじゃリソースを考えなくていいawsのs3はどうよ?

aipacommander.hatenablog.jp

金かかるよね。(多分そんなにかからないと思うけど)

なので、ファイルはgitで管理してgithubやbitbucketへアップロードすればいいじゃなーい。

githubはプライベートだと有料なので、bitbucketを使います。

流れとしては、1.backup取得、2.gitへコミット、3.bitbucketへpush って感じです。

作成したscriptはこちら

#!/bin/bash

DATE=`date +"%Y%m%d_%H%M"`
SAVE_DIR="~/wordpress-sql-dump" # gitのリポジトリがあるディレクトリ
MYSQL_COMMAND=/usr/bin/mysqldump
DB_NAME="wordpress" # DBの名前

# exec command
${MYSQL_COMMAND} ${DB_NAME} >${SAVE_DIR}/${DB_NAME}.sql

# git
cd ${SAVE_DIR}/
git commit -am "Updating DB backup ${DATE}"
git push origin master

ここを参考にしました。

Backup your Database in Git | Viget

注意すべきは、最初にリポジトリ作らないと実行できませんよ。

あとbitbucketにはパス無しでアップロードできるように鍵を登録しておかないとね。手順は下記。

aipacommander.hatenablog.jp

これで運用していこう。んで、多分容量圧迫していくと思うけど経過観測していく。