Cara menggunakan mysql workbench migration wizard

Migration merupakan standar tool modern untuk membuat skema database, dan secara default suda ada di php framework modern seperti laravel atau yii2. Ini merupakan topik lanjutan yang mungkin tidak disediakan di dokumentasi bawaan framework, jika ada waktu nanti saya buat materi dasar bagaimana menggunakan migration di yii2 framework.

Ada kalanya anda sudah membuat desain skema database menggunakan mysql workbench, dan sekaligus anda mengisi initial data di dalam workbench tersebut (masuk ke dalam tab “Inserts”), contoh seperti pada gambar dibawah, tabel tbl_chart_of_account yang berisi 90 row data awal.

Cara menggunakan mysql workbench migration wizard
Gambar 1. Skema database untuk tbl_chart_of_account yang memiliki initial data

Selanjutnya anda perlu membuat migration untuk create tbl_chart_of_account tersebut (tidak saya bahas disini), baru kemudian anda membuat migration untuk insert data di tbl_chart_of_account yang berisi template migration kosongan.

yii migrate/create insert_data_chart_of_account

Selanjutnya buka file yang sudah digenerate tadi, seperti ini isi template kosongannya:

<?php

use yii\db\Migration;

/**
 * Class m221026_055425_insert_data_chart_of_account
 */
class m221026_055425_insert_data_chart_of_account extends Migration
{
    /**
     * {@inheritdoc}
     */
    public function safeUp()
    {
        
    }

    /**
     * {@inheritdoc}
     */
    public function safeDown()
    {
        
    }

    /*
    // Use up()/down() to run migration code without a transaction.
    public function up()
    {

    }

    public function down()
    {
        echo "m221026_055425_insert_data_chart_of_account cannot be reverted.\n";

        return false;
    }
    */
}

Buat satu baris untuk batchInsert terlebih dahulu sebagai bahan acuan:

    public function safeUp()
    {
        $this->batchInsert('{{%chart_of_account}}', ['kode_akun', 'parent_id', 'id_group_coa', 'nama_akun_transaksi', 'keterangan', 'level', 'postable', 'no_rekening', 'check_account', 'manual_account', 'created_at', 'updated_at', 'created_by', 'updated_by'], [
            ['1000000', '', '1', 'ASSETS', 'Header', '1', '0', '', '0', '', date('Y-m-d H:i:s'), date('Y-m-d H:i:s'), 1, 1],
        ]);
    }

Selanjutnya kembali ke mysql workbench, pilih menu export

Cara menggunakan mysql workbench migration wizard
Gambar 2. Export initial data pada mysql workbench tbl_chart_of_account

Anda bisa memilih format “csv ; separated”

Cara menggunakan mysql workbench migration wizard
Gambar 3. Memilih format CSV : separated

Buka file tadi di excel, kemudian pada kolom terakhir, baris data pertama paste kan value awal dari kode awal pada fungsi safeUp() sebelumnya

Cara menggunakan mysql workbench migration wizard
Gambar 4. Paste value awal sebagai string acuan

Selanjutnya ubah menjadi rumus, ini perlu sedikit melakukan trial-error. Anda hanya perlu menggunakan rumus concat text pada excel yaitu dengan rumus "&[cell]&"

Cara menggunakan mysql workbench migration wizard
Gambar 5. Ubah value text menjadi formula di excel dengan concat text, mengambil dari cell referensi

Jika sudah benar antara formula dengan tampilan hasil formula tersebut, selanjutnya anda tinggal drag untuk meng-copy rumus tersebut untuk semua row.

Cara menggunakan mysql workbench migration wizard
Gambar 6. Drag dan copy ke semua row yang ada datanya

Langkah terakhir, copy hasil semua row tadi, dan pastekan ke fungsi safeUp yang tadi, sisipkan, sehingga kode akhir menjadi contoh seperti berikut:

Kebanyakan pemula masih sering salah dan kurang ngeh tentang database. Mereka kira phpMyAdmin adalah database itu sendiri. Padahal bukan, ia hanyalah sebatas aplikasi database client berbasis web saja. Yang database itu ya MySQL atau MariaDB. Dan kedua database tersebut tidak mesti harus di-manage menggunakan phpMyAdmin. Banyak alternatif lain yang bisa kita gunakan. Atau bahkan kita juga bisa langsung memanfaat aplikasi client default yang bersifat CLI tanpa harus menggunakan aplikasi pihak ketiga.

Bayangkan kalau kita ternyata lagi wawancara kerja. Lalu ditanya-tanya seputar database dan kita jawab bahwa kita pakai database phpMyAdmin? Waah, bisa-bisa kita dicap cupu banget atau dianggap masih sangat junior. Bahkan itu bisa menjadi faktor utama kenapa kita gagal direkrut!

Nah, untuk menghindari hal-hal seperti ini, kita harus memperluas wawasan. Apa saja sih aplikasi yang bisa kita pakai selain phpMyAdmin? Berikut ini adalah 5 list top aplikasi alternatif mysql client selain phpMyAdmin.

MySQL Workbench

Yang pertama adalah MySQL Workbench. Ini adalah mysql database client satu-satunya yang dikembangkan resmi oleh MySQL [1].Aplikasi ini sangat direkomendasikan. Anda akan mendapatkan beberapa keuntungan jika menggunakan MySQL Workbench.

Gambar 1: MySQL Workbench sedang membuka Visual Database Design

Kelebihan

  • Satu-satunya aplikasi mysql client resmi yang dibangun oleh Oracle.

  • Memiliki user interface yang mudah digunakan

  • Tersedia untuk Windows, Linux, dan Mac OS

  • Fitur Visual Database Design Schema (seperti pada Gambar 1)

  • SQL Editor dengan syntax highlighting, auto-complete, penggunakan ulang SQL snippets, dan juga histori query yang telah dieksekusi

  • Dashboard performa database

    Gambar 2: MySQL Workbench sedang membuka Visual Database Design

  • Blob View

  • Schema Inspector

  • Dan lain-lain

Harga

  • Gratis

Situs Resmi

  • https://www.mysql.com/products/workbench/

DBeaver

DBeaver adalah database client dengan campaign: free universal database tool and SQL client [2]. DBeaver cukup populer di kalangan pengguna linux bahkan ia sudah tersedia di toko aplikasi snap store. Tidak hanya itu, DBeaver juga memiliki lebih dari 11.7k bintang di Github pada saat artikel ini ditulis.

Gambar 3: DBeaver design database schema

Kelebihan

Di antara kelebihan yang ditawarkan oleh DBeaver adalah:

  • Open source

  • Berjalan di berbagai platform: Windows, Linux, Mac OS

  • Punya banyak fitur seperti: metadata editor, SQL editor, rich data editor, ERD, data export/import/migration, SQL Execution plans dan lain-lain

  • Berbasis Eclipse platform, sehingga tampilan dan performanya smooth

  • Tersedia banyak plugin

  • Dukungan terhadap MySQL/MariaDB, PostgreSQL, Greenplum, Oracle, SQLite, SQL Server dan banyak lagi

  • Tersedia berbagai macam tema tampilan

    Gambar 4: DBeaver pilihan tema tampilan

  • Map Preview untuk tipe data GIS

    Gambar 5: DBeaver map preview

Harga

  • Gratis

Situs Resmi:

  • http://dbeaver.io/

HeidiSQL

HeidiSQL adalah software database client gratis dengan tampilan yang indah dan mudah dipelajari. Support berbagai macam database server. Dan HeidiSQL dianggap salah satu tool paling populer untuk MariaDB dan MySQL [3].

Gambar 6: Tangkapan layar HeidiSQL

Kelebihan

Kelebihan yang kita dapatkan dari HeidiSQL:

  • Tampilan intuitif dan cantik
  • Support berbagai macam database server seperti MariaDB/MySQL, PostgreSQL, MicrosoftSQL, PostgreSQL
  • Tersedia versi portable tanpa harus instalasi
  • Support windows 7, windows 8, dan windows 10
  • Bisa dijalankan di Linux dengan aplikasi wine
  • Bisa terhubung ke MySQL lewat SSH tunnel
  • Syntax Highlightor dan Auto Complete

Harga:

  • Gratis

Situs Resmi:

  • https://www.heidisql.com/

Navicat for MySQL adalah sebuah database tool yang bisa digunakan oleh Database Admin mau pun developer. Software ini seperti namanya, hanya mendukung MariaDB, MySQL dan database cloud [4]. Akan tetapi Navicat sendiri memiliki berbagai macam produk yang berkaitan dengan database, salah satunya untuk MySQL client (Navicat for MySQL), untuk PostgreSQL (Navicat for PostgreSQL), untuk MongoDB (Navicat for MongoDB) dan juga produk-produk software yang lain.

Gambar 7: Navicat for MySQL

Yang perlu kita ketahui adalah, Navicat memiliki banyak customer dari perusahaan raksasa dunia semisal: Google, Apple, Adobe, Samsung, Facebook, Sony, Nvdia, Netflix, Microsoft, Ebay dan sebagainya [5].

Ngeri bukan?

Kelebihan

  • Tampilan yang cantik dan modern
  • Bisa berjalan di berbagai platform seperti Windows, Linux, Mac OS, dan iOS
  • Support data transfer, sinkronisasi, migrasi data
  • Visual SQL Builder
  • Intellegent Database Designer
  • Navicat Cloud untuk mempermudah kolaborasi antar tim
  • Cross-Platform licensing
  • Support SSH tunnel

Harga

  • Paket Non-Commercial seharga USD 5.99 per bulan atau USD 119 per tahun
  • Paket Standard seharga USD 9.99 per bulan atau USD 199 per tahun
  • Paket Enterprise seharga USD 14.99 per bulan atau USD 299 per tahun

Situs Resmi

  • https://www.navicat.com/en/products/navicat-for-mysql

Adminer

Yang terakhir dan yang saya gunakan sehari-hari adalah Adminer. Adminer adalah database client yang hanya menggunakan single PHP file! Dukungan yang diberikan oleh adminer pun bukan hanya MySQL atau MariaDB saja, tapi ia juga memberikan dukungan terhadap: PostgreSQL, SQlite, dan lainnya.

Gambar 8: Adminer sedang membuka database schema

Dan adminer adalah projek open source, dikembangkan oleh komunitas. Anda pun bisa untuk turut berkontribusi dengan mengunjungi repositori resmi mereka di github. Pada saat artikel ini ditulis, mereka telah memiliki lebih dari 3.9k jumlah bintang.

Kelebihan

  • Ukuran kecil

  • Support terjemahan berbagai bahasa

  • Support berbagai database termasuk PostgreSQL, MySQL, dan lain sebagainya seperti pada Gambar 9

    Gambar 9: dukungan database yang tersedia di adminer

  • Tidak memerlukan cara install tertentu karena hanya satu file PHP

  • Web Based sehingga bisa diinstall dengan mudah di server (seperti halnya PHPMyAdmin)

  • Kaya fitur. Meskipun hanya satu file, tapi adminer bisa mengakomodasi pekerjaan umum bagi developer mau pun database admin untuk keperluan sehari-hari.

  • Performa cepat: tidak membutuhkan banyak memori, tidak membutuhkan banyak waktu untuk menunggu

Harga

  • Gratis

Situs Resmi

  • https://www.adminer.org/

Jadi.. masih mau pakai phpMyAdmin?

Setelah melihat 5 produk alternatif dari phpMyAdmin di atas, apakah anda masih tetap keukeuh ingin bertahan dengan phpMyAdmin? Atau justru ingin menggunakan software yang lain? Hmmm.. pilihan terserah pada anda. Kalau bagi saya pribadi, saya lebih suka untuk menggunakan software yang berbeda dari umumnya orang, apalagi kalau kita lagi presentasi di depan yang lain.

MySQL Workbench buat apa?

MySQL Workbench adalah sebuah perangkat aplikasi berbentuk visual yang dipergunakan untuk mengelola basis data. Perangkat aplikasi ini biasa digunakan oleh seorang arsitek basis data, pengembang basis data, serta administator basis data.

Langkah kerja MySQL?

Bagaimana Cara Kerja MySQL?.
MySQL membuat database untuk menyimpan dan memanipulasi data, serta menentukan keterkaitan antara masing-masing tabel..
Client membuat permintaan (request) dengan mengetikkan pernyataan SQL yang spesifik di MySQL..
Aplikasi server akan merespons dengan memberikan informasi yang diminta..

MySQL pakai bahasa apa?

Database MySQL merupakan suatu perangkat lunak database yang berbentuk database relasional atau disebut Relational Database Management System ( RDBMS ) yang menggunakan suatu bahasa permintaan yang bernama SQL (Structured Query Language ).

MySQL masuk ke dalam jenis apa?

Seperti yang sudah disinggung di atas, MySQL masuk ke dalam jenis RDBMS (Relational Database Management System). Maka dari itu, istilah semacam baris, kolom, tabel, dipakai pada aplikasi database ini. Contohnya di dalam MySQL sebuah database terdapat satu atau beberapa tabel.