Home > PHP | Tips > phpとsqliteでバックアップ

phpとsqliteでバックアップ

  • 2009-06-07 (日) 21:57
  • PHP | Tips

小物ツールを作るとき、私はよくPHPとSQLiteを使います。PHPなら簡単にSQLite使えるし、バックアップが簡単なためです。
例えば名セリフDB(ほとんど使われていませんがw)では以下のような関数を作っていつでもバックアップと復元ができるようにしています。


define("DB_NAME", "hoge.db");
define("BACK_DIR", "./fuga");

function back_up() {
   $time = getdate();
   $date = sprintf("%04d%02d%02d-%02d%02d%02d"
         ,$time['year'],$time['mon'],$time['mday'],$time['hours'],$time['minutes'],$time['seconds']);
   
   $back_up_name = BACK_DIR . "/" . $date . ".db";
   if (copy(DB_NAME, $back_up_name)) {
      return "OK Back up $back_up_name";
   } else {
      return "NG Back up";
   }
}

function list_of_old() {
   $dh = opendir(BACK_DIR);
   $files = array();
   while (false !== ($file = readdir($dh))) {
      if ($file == '.' || $file == '..' || !strstr($file, '.db')) continue;
      $files[] = $file;
   }
   return $files;
}

function recover($date) {
   $file =  $date;      // list_of_oldで表示した日付
   if (!$file || $file == "") return;
   $file = BACK_DIR . "/" . $file;
   if (copy($file, DB_NAME)) {
      return "OK Recover From $file";
   } else {
      return "NG Recover";
   }
}

まあ、日付でDBファイルをコピーしてバックアップして、復元するときもバックアップファイルからコピーして置換するっていう。
こういう豪快なことができるのもシンプルDBであるSQLiteと、データサイズが小さくて済むユーザーレスサービスの強みですね。

以上

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://red-treasure.com/report/wp-trackback.php?p=415
Listed below are links to weblogs that reference
phpとsqliteでバックアップ from コスミー報告書[社外秘]

Home > PHP | Tips > phpとsqliteでバックアップ

Search
Feeds
Meta
 合計:015183
 今日:0004 昨日:0155

Return to page top