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