Script Backup Restore Database menggunakan Framework CI
Latar Belakang
Sebagai utilitas dari aplikasi yang anda bangun jika membutuhkan fasilitas untuk backup atau restore sebuah database yang sedang digunakan. saya asumsikan temen-teman sudah falimiar dengan framework CI. buat sebuah controller misalnya utilitas.php simpan di folder application/controllers
Script Backup
Jika didalam database anda terdapat tabel view, maka itu harus di hapus terlebih dahulu. silahkan buat metode pada sebuah model yg berfungsi untuk menghapus table view.
function backup(){sehingga jika nanti berhasil membackup database, maka akan keluar kotak dialog untuk menyimpan file backup database.
$this->Edit_model->hapus_view();
$this->load->helper(‘download’);
$tanggal=date(‘Ymd-His’);
$namaFile=$tanggal . ‘.sql.zip’;
$this->load->dbutil();
$backup=& $this->dbutil->backup();
force_download($namaFile, $backup);
}
Script Restore
- Sebelum melakukan restore anda harus extrak dahulu file zip yang tadi di download sehingga menjadi file misalnya 20110919-165636.sql
- Diasumsikan file tersebut di simpat di root system
- Sebagai alternatif, anda bisa membuat aplikasi upload file database yang akan di restore ke dalam folder yang sudah ditentukan misalnya folder backupdb
- Setelah file berada di folder tersebut, maka script akan membaca file tersebut dan melakukan proses restore
function restore(){Sekian artikel dari saya sekedar catatan kecil untuk saya, dan semoga bermanfaat untuk teman-teman dan anda semua…aamiin
//hapus dulu database jika proses restore gagal.
$this->Edit_model->hapus_db();
//upload dulu filenya
$fupload = $_FILES['datafile'];
$nama = $_FILES['datafile']['name'];
if(isset($fupload)){
$lokasi_file = $fupload['tmp_name'];
$direktori=”backupdb/$nama“;
move_uploaded_file($lokasi_file,”$direktori”);
}
//restore database
$isi_file=file_get_contents($direktori);
$string_query=rtrim($isi_file, “\n;” );
$array_query=explode(“;”, $string_query);
foreach($array_query as $query){
$this->db->query($query);
}
$data['page']=’restore’;
$this->load->view(‘home’,$data);
}
0 komentar:
Posting Komentar