cakephp3 シェルを使ってDBのバックアップをとる。

ここを参考に作成

mysqldumpメソッドの書き方

MysqldumpTask.php

private function execMysqldump()
{
   $date = date('Ymd-His');
   
   // env('DB_USERNAME')は、config/.envの環境変数を見にいっている。
   $command = sprintf('mysqldump -u %s -p%s %s > %sbackup.sql', 
   env('DB_USERNAME'),
   env('DB_PASSWORD'),
   env('DB_SCHEMA'),
   STORAGE.$date);
   
   exec($command, $output, $result);
   return $result;
}

config/defines.php

define('STORAGE', 'STORAGE/');

最初、env()の意味がわからず、中に直接DBのユーザー名やパスワードを書いていた。

実際は、config/.envファイルの環境変数を見にいくための書き方だった。

画像1

.envにこのように書き、別のファイルでenv('DB_USERNAME')と書くと、rootと表示される。

mysqldumpの書き方

mysqldump -u ユーザ名 -pパスワード DB名 > /出力先ディレクトリ/ファイル名

参考サイト:

https://www.searchlight8.com/mysql-dump/



この記事が気に入ったらサポートをしてみませんか?