Bagi yang mencari cara untuk melakukan dump dan load database melalui laravel dengan cepat dan mudah, bisa mencoba package laravel db snapshosts yang dibuat oleh spatie. Package ini bisa digunakan untuk database mySQL, postgreSQL, dan sqlite.
Instalasi
composer require spatie/laravel-db-snapshots
Selanjutnya kita harus menambahkan disk dengan nama snapshots pada file app/config/filesystems.php beserta dimana file snapshots tersebut disimpan. Misal seperti ini konfigurasinya :
// ... 'disks' => [ // ... 'snapshots' => [ 'driver' => 'local', 'root' => database_path('snapshots'), ], // ...
Secara opsi, kita juga dapat mempublish file konfigurasi yang perintah :
php artisan vendor:publish --provider="Spatie\DbSnapshots\DbSnapshotsServiceProvider" --tag="config"
isi file konfigurasi tersebut adalah :
return [ /** * The name of the disk on which the snapshots are stored. */ 'disk' => 'snapshots', /** * The connection to be used to create snapshots. Set this to null * to use the default configured in `config/databases.php` */ 'default_connection' => null, /** * The directory where temporary files will be stored. */ 'temporary_directory_path' => storage_path('app/laravel-db-snapshots/temp'), /* * Create dump files that are gzipped */ 'compress' => false, ];
Penggunaan
Untuk membuat snapshots/dump database dengan menjalankan perintah :
php artisan snapshot:create my-first-dump
Jika, ingin hasil dump-nya sudah di kompress jika bisa dilakukan dengan menambahkan perintah opsi –compress atau bisa juga pada file konfigurasi dengan mengubah bagisn compress menjadi true.
# Creates a snapshot named my-compressed-dump.sql.gz php artisan snapshot:create my-compressed-dump --compress
Sementara jika sudah melakukan dump, lalu ingin melakukan load dengan menjalankan perintah :
php artisan snapshot:load my-first-dump
Untuk lebih jelasnya bisa menluncur ke
https://github.com/spatie/laravel-db-snapshots