Laravel 8 ile Admin Panelinizden Yedek Alın!

Laravel 8 ile Admin Panelinizden Yedek Alın!

Laravel 8 ile Admin Panelinizden Yedek Alın!

Herkese Merhaba,

Bloğumda ki ilk yazıyı sizlerle paylaşıyorum. Daha önce Laravel'in eski sürümlerinde ngym paketi ile mysql-dumper:dump ile istediğim zaman veri tabanımın yedeğini aldırabiliyordum. Laravel 8'e geçtikten sonra çalışmadığını fark ettim ve bir kaç saatlik araştırma sonrası sorunumu çözüp yazmış olduğum projeme hemen entegre ettim.


Not : Laravel ile yazdığınız her projede bu özelliği eklemenizi şiddetle tavsiye ederim. Sunucuya güven olmaz ne de olsa YEDEK HAYAT KURTARIR.


İlk olarak yapmanız gereken gerekli olan composer paketini kurmak bunun için terminal satırımıza yazacağımız kod şu şekilde;


composer require ifsnop/mysqldump-php


Gerekli olan kütüphanemizi yükledik şimdi Route tanımımızı yapıp Controller üzerinden kütüphanemizi gösterelim.


Route::get('/yedekal','TanimController@yedekAl')->name('yedek.al');


Controller üzerinden kütüphanemizi gösteriyoruz.


use Ifsnop\Mysqldump as IMysqldump;


Kurulumuzu tamamladık. Fonksiyonumuzu yazabiliriz.


public function yedekAl()
    {
        try {
            $host = env('DB_HOST');
            $dbname = env('DB_DATABASE');
            $username = env('DB_USERNAME');
            $password = env('DB_PASSWORD');
            $dump = new IMysqldump\Mysqldump("mysql:host=$host;dbname=$dbname", "$username", "$password");
            $dump->start(storage_path('Yedekler/'.date('d-m-y') .' .sql'));
       
        } catch (\Exception $e) {
            return 'mysqldump-php error: ' . $e->getMessage();
        }        return redirect()->route('yedek')
                         ->with('mesaj_tur','success')
                         ->with('mesaj','Yedekleme İşlemi Başarıyla Gerçekleşti!');;
    }


  • .env dosyamızın içinden veri tabanı bilgilerimizi oluşturmuş olduğumuz değişkenlere aktarıyoruz.
  • MySQL bağlantımızı çektiğimiz değişkenlerle oluşturuyoruz.
  • Laravel dizininde bulunan storage içine Yedekler adında klasör oluşturuyoruz.
  • Bu işlem bize istediğimiz zaman program içinden aldığımız yedeğe ulaşmamızı sağlıyor.


Eğer işlem başarılı ise storage klasörümüzün içinde o günün tarihini alan bir .sql uzantılı yedeğimiz oluşacak ve bizi ilgili sayfaya göndererek işlem başarılı mesajını döndürecek.


Farklı kütüphaneler ile çalıştıysanız onları da bana bildirebilir ve yazmış olduğum yazıyı geliştirmeme katkıda bulunabilirsiniz.


Bir sonraki yazımda Yedekleri Listeleme ve Yedekleri Bilgisayarımıza İndirme konulu yazımı paylaşacağım.