GattsCOM

ブログ

BLOG

  1. Home
  2. Blog

Laravel4でDB(データベース)のバックアップを取る

私は、現在Laravelのバージョンは5.7や5.8を使うことが多いのですが


昔使ってたLaravel4.2のバージョンでまだ動いてる物もあったりします。


そこで、今回はちょっと古い情報だけど、Laravel4でもデータベースのバックアップする方法を書きます!

まずは下記のリンクを参照してください。

と言っても、導入のやり方なども、このあと書いて行くので見なくてもOKです


Larave-Backup


↑ここが本家!

まずは、composerに記述しましょう!!

composer require schickling/backup

↑で入らない人は、composerに手動で書きましょう!
composer.json

"require": {
	"schickling/backup":"0.6",
}

終わったら、Laravel側のapp/config/app.phpに下記記述してください

//app/config/app.phpに追記

'providers' => array(
'Schickling\Backup\BackupServiceProvider',
);



設定は以上です!簡単ですね!!


サクッと終わりました!


あとは、ターミナルなどで


php artisan db:backup


したら、「app/storage/dumps/」ってところに「○○○○○○○.sql」ってファイルが出来てます!!


中身は、きれいにdumpデータが書かれていますね!

ターミナルじゃなくて、Laravel内で動かしたい人!!


わかりますよその気持。


ってことで、Laravel内で動かす場合はこちら!

//適当なコントローラーファイルのfunctionの中に

Artisan::call('db:backup');

と書けば、同じ処理が出来ます。


え?ファイル名を付けれないのか?って?


もちろん付けれますよ!!

Artisan::call('db:backup', ['filename'=>$file_name.'.sql']);

app/storage/dumpsに事前にディレクトリを作って、そこを指定することも出来ます。


その場合は

Artisan::call('db:backup', ['filename'=>app_path().'/storage/dumps/bkupfile/'.$file_name.'.sql']);

なんてことも出来ます。


でも、上に書いた「app_path().'/storage/dumps/bkupfile/'」の「bkupfile」と言うディレクトリは事前に作っておきましょう!


No such Directory!ってエラーで怒られます。

それでは、最後にバックアップしたデータを復元する方法を書きます!


本家にも書かれていますが


php artisan db:restore filename.sql


で、出来ます。


ですので、先程と同じでLaravel内で同じことがしたい場合は。


Artisan::call('db:restore', ['dump'=>$file_name]);

で、出来ますよ!!


しかも、バックアップ処理速度もかなり早いので便利です。


また、良い情報集めて公開しま〜す。

少しでも役に立てたら、嬉しいですねぇ〜(^o^)v