Skip to content
PT Nusagates Global Persada

PT Nusagates Global Persada

Software Developer Company

  • Home
  • Layanan
    • Jasa Pembuatan Website Lifetime Support
    • Jasa Konsultan IT & Sistem Integrator
  • Blog
  • About
  • Syarat & Ketentuan
  • Kebijakan
  • FAQ
tutorial laravel

Cara Backup Database Laravel ke Google Drive

July 17, 2023 by Ahmad Budairi

Database adalah jantungnya suatu aplikasi secara umum. Oleh sebab itu, backup database adalah sesuatu yang penting untuk mengantisipasi jika terjadi kerusakan server yang menyebabkan database hilang atau corrupt.

Daftar Isi

Toggle
  • Mengaktifkan API Google Drive
  • Membuat Service Account
  • Tambahkan Client Email Ke Google Drive
  • Tambahkan File Json Key ke Aplikasi Laravel
  • Membuat Command untuk Backup Database
  • Restore Database

Nah! Salah satu cara untuk backup database laravel adalah menggunakan Google Drive. Selain kita bisa memanfaatkan layanan Google Drive secara gratis, keamanan data juga sangat terjamin daripada kita menyiapkan arsitektur untuk backup data sendiri.

Mengaktifkan API Google Drive

Sebelum bisa menggunakan API Google Drive, kita perlu mengaktifkan API Google Drive terlebih dahulu. Caranya adalah sebagai berikut:

  • Masuk ke dashboard https://console.cloud.google.com/
  • Klik menu ENABLE API AND SERVICE
  • Cari Google Drive API
  • Klik Aktifkan
Tampilan ketika Google Drive API sudah diaktifkan

Membuat Service Account

Pada kesempatan kali ini, kita menggunakan Service Account untuk mengelola Google Drive yang akan digunakan untuk backup database Laravel. Langkahnya adalah sebagai berikut:

  • Klik burger menu di pojok kiri atas
  • Sorot menu APIs and Service, Pilih Credentials
  • klik menu + CREATE CREDENTIAL lalu pilih Service Account Buat service account
  • Isikan data pada form yang telah disediakan. Klik tombol done
  • Klik service account yang baru saja dibuat
  • Klik Tab KEYS
  • Klik menu ADD KEY dan Pilih Json lalu klik tombol Create

Tambahkan Client Email Ke Google Drive

Setelah json key berhasil dibuat maka selanjutnya buka file tersebut dan ambil client_email untuk ditambahkan ke Google Drive. Caranya sebagai berikut:

  • Buat folder di google Drive
  • Klik kanan folder tersebut lalu klik menu Share/Bagikan
  • Paste client_email yang didapat dari json key tadi dan ubah role menjadi editor
  • Klik tombol done

Tambahkan File Json Key ke Aplikasi Laravel

  • Buat folder dengan nama google di dalam directory storage/app. lalu tambahkan file json key tadi ke dalam folder tersebut.
  • ganti nama file menjadi service.json

Membuat Command untuk Backup Database

Command di dalam Laravel bisa dibuat menggunakan perintah php artisan make:command NamaCommand. Pada kesempatan kali ini, kita akan membuat Command dengan nama DataBackup maka kita perlu menjalankan perintah berikut:

php artisan make:command Databackup

Setelah itu buka file Databackup.php yang terletak pada direktory App\Console\Commands.

Ganti bagian $signature menjadi protected $signature = 'data:backup';

Tambahkan block kode berikut pada fungsi handle:

$filename = "backup-" . Carbon::now()->format('Y-m-d') . ".sql";
        // Create backup folder and set permission if not exist.
        $storageAt = storage_path() . "/app/backup/";
        if (!File::exists($storageAt)) {
            File::makeDirectory($storageAt, 0755, true, true);
        }
        //create backup file
        $command = "" . env('DB_DUMP_PATH', 'mysqldump') . " --user=" . env('DB_USERNAME') . " --password=" . env('DB_PASSWORD') . " --host=" . env('DB_HOST') . " " . env('DB_DATABASE') . "  | gzip > " . $storageAt . 'db.sql';
        $returnVar = NULL;
        $output = NULL;
        exec($command, $output, $returnVar);

        //get json key from storage
        $sa = Storage::path('/google/service.json');
        //create service using json key
        $client = new Client();
        $client->setAuthConfig($sa);
        $client->addScope(Drive::DRIVE);
        $service = new Google_Service_Drive($client);
        //create file inside folder we created before
        $file = new Google_Service_Drive_DriveFile([
            'name'    => 'Backup',
            'parents' => array('ID_FOLDER')
        ]);
        $file->setName($filename);
        $result = $service->files->create($file, array(
            'data'       => Storage::get('/backup/db.sql'),
            'mimeType'   => 'application/octet-stream',
            'uploadType' => 'multipart'
        ));
        $this->info($result->name . ' berhasil dibackup');

Ganti ID_FOLDER sesuai Id Folder Google Drive. Cara mendapatkannya cukup dengan klik folder di google drive yang baru saja dibuat tadi lalu lihat di address bar browser. Segmen terakhir url tersebut adalah ID folder. Contoh ID adalah seperti ini: 1NWawGvWsiTBKnou4xnV5bByFNT6SpENn

Restore Database

Cara restore database yang telah dibackup tadi adalah dengan menjalankan perintah berikut di terminal atau command prompt.

zcat /path/file/backup-2023-07-17.sql | mysql -udb_user -p db_name
  • Ganti /path/file/backup-2023-07-17.sql dengan path file database
  • Ganti db_user dengan username database
  • ganti db_name dengan nama database

Share this:

  • Tweet
  • WhatsApp
  • More
  • Print
  • Email
  • Reddit
  • Share on Tumblr
  • Pocket
  • Mastodon

Like this:

Like Loading...

Related

Photo of author

Ahmad Budairi

Ahmad Budairi, S.Pd. | Seorang Web Developer sekaligus kader Gerakan Pemuda Ansor yang sangat suka menulis artikel. Saya di sini akan lebih banyak menulis seputar Laravel, vue, vuetify, inertiajs, dan hal lain yang berhubungan dengan web development.Kontak: budairi.contact[et]gmail[dot]com
Categories Artikel Tags backup, database, laravel, service account
Cara Membuat Grade Nilai Huruf di JavaScript
Membuat Halaman Login Menggunakan Vuetify & Inertia JS

most recent

More
Tutorial Microsoft Graph
Artikel

Cara Mudah Mengakses File SharePoint dengan Python

Tutorial Microsoft Graph
Artikel

Cara Mendapatkan Share Link OneDrive Semua File

Catatan pengembangan aplikasi android menggunakan kotlin
Artikel

Cara Menampilkan HTML di TextView Android

Catatan pengembangan aplikasi android menggunakan kotlin
Artikel

Cara Menyambungkan Koneksi Socket ke Printer Bluetooth

Catatan pengembangan aplikasi android menggunakan kotlin
Artikel

Cara Mendapatkan Daftar Perangkat Bluetooth Tersambung pada Kotlin

Article

Install Nginx Menggunakan Docker di Ubuntu 24.04

info

PT NUSAGATES GLOBAL PERSADA

Klampeyan, Desa/Kelurahan Noborejo, Kec. Argomulyo, Kota Salatiga, Provinsi Jawa Tengah, Kode Pos: 50736
Telp. 082225005825
Email. nusagates@gmail.com

  • Home
  • Layanan
    • Jasa Pembuatan Website Lifetime Support
    • Jasa Konsultan IT & Sistem Integrator
  • Blog
  • Syarat & Ketentuan
  • Kebijakan
  • FAQ
  • Article (3)
  • Artikel (53)
  • Berita (6)
  • Nusagabook (3)
  • Nusagachild (1)
  • Nusagadu (135)
  • Nusagahealth (1)
  • Nusagalture (1)
  • Nusagatech (82)
  • Nusagatizen (10)
  • Nusagatrip (63)
  • Nusagaview (1)

© PT. NUSAGATES GLOBAL PERSADA 2025

PRIVACY POLICYterms of service
%d