[Testlinkjp-users] DBバックアップ機能についての要望

Back to archive index

西山 博実 hnish****@skygr*****
2008年 8月 8日 (金) 17:46:28 JST


川西さんへ

こんばんは、西山です。

DBバックアップ機能についての要望です。

TestLink(TestLink 1.8)に、DBバックアップ機能があると管理者は楽だと思います。 

そこで、adminでloginした場合には、DBのエクスポートとインポートの
メニューを追加するのは、いかがでしょう?

よろしく、ご検討ねがいます。
(8/9〜17は夏休みでメールができません。 ゴメンナサイ!)

phpコードは自作システムのものです。
→Windows(XAMPP)では動作しませんが、Windows(XAMPP)ではphpMyAdmin
 が付いてくるので、phpMyAdminでDBバックアップができます。


■DBの管理
・[エクスポート]
 →定期的にエクスポートすることで、SQLファイルにバックアップできます。
 →SQLファイル(<datadir>/testlink/db.sql)が作成(更新)された事をファイルの更新日時で確認してください。

・[インポート]
 →DBを全消去してからインポートします。
 →前回エクスポートしたSQLファイルより、DBが復元できます。


 //////////////////////////////////////////
 //
 // データベースのエクスポート関数 →Windows(XAMPP)では動作しません
 //
 // 引数  :無し
 // 戻り値:出力SQLファイル
 //////////////////////////////////////////
       function DB_export(){

  // サーバー定数の設定
  $this->set_server_var();

  // DB SQLファイル
  if( 1 == $this->LocalSys ){
   $DbSqlFile = $this->DbSqlFileLocal;
  }
  else {
   $DbSqlFile = $this->DbSqlFileHost;
  }

  // データベースのエクスポートshellコマンドの作成
  $shell = sprintf("mysqldump %s > %s  --host=%s --user=%s --password=%s",
    $this->myDB,
    $DbSqlFile,
    $this->myServer,
    $this->myUser,
     $this->myPass
     );

  // shellコマンドの実行
  $result = shell_exec($shell);

 printf("<b><p>DATABASEの「%s」を「%s」へエクスポートしました。</p></b>",
$this->myDB, $DbSqlFile);

  // 戻り値:出力SQLファイル
          return $DbSqlFile;
 }

 //////////////////////////////////////////
 //
 // データベースのインポート関数  →Windows(XAMPP)では動作しません
 //
 // 引数  :無し
 // 戻り値:入力SQLファイル
 //////////////////////////////////////////
       function DB_import(){

  // サーバー定数の設定
  $this->set_server_var();

  // DB SQLファイル
  if( 1 == $this->LocalSys ){
   $DbSqlFile = $this->DbSqlFileLocal;
  }
  else {
   $DbSqlFile = $this->DbSqlFileHost;
  }

  // データベースのインポートshellコマンドの作成
  $shell = sprintf("mysql %s < %s  --host=%s --user=%s --password=%s",
    $this->myDB,
    $DbSqlFile,
    $this->myServer,
    $this->myUser,
     $this->myPass
     );

  // shellコマンドの実行
  $result = shell_exec($shell);

 printf("<b><p>DATABASEの「%s」へ「%s」をインポートしました。</p></b>",
$this->myDB, $DbSqlFile);

  // 戻り値:出力SQLファイル
          return $DbSqlFile;
 }




Testlinkjp-users メーリングリストの案内
Back to archive index