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