Membuat Tabel Migrasi Yii secara Otomatis

Yiic migrate sangat berguna untuk instalasi database awal dan update struktur database dari program yii kita. Dengan migration tools ini, setiap developer atau user dapat mengupdate databasenya tanpa perlu ngoprek service databasenya.

Untuk membuat migrasi, developer harus membuat koding secara manual untuk penambahan atau pengurangan tabel dan kolom. Jika jumlah tabelnya sedikit atau perubahannya tidak terlalu banyak, koding dapat mudah dibuat, namun akan sangat melelahkan jika developer harus membuat koding migrasi untuk jumlah tabel yang sangat banyak.

Di sini saya akan membagi sebuah perintah konsol dari seorang developer yii. Kode dapat diunduh di  https://github.com/codevarun/Deftmigrations. Setelah Anda mengunduhnya, salin file DeftmigrationsCommand.php ke folder protected/commands. Buat folder protected/migrations jika belum ada. Pastikan yiic, yiic.bat, yiic.php ada di folder protected.


Setelah itu Anda dapat menjalankan migrasi, jika Anda pengguna windows, pastikan environment variable php sudah berjalan ke path yang benar.

Untuk menjalankan pembuatan migrasi, bukan commandline lalu masuk ke folder protected. Jalankan salah satu dari perintah berikut:
yiic.bat deftmigrations TableSchema
yiic.bat deftmigrations TableData
yiic.bat deftmigrations TableDump
Perintah pertama untuk membuat migrasi seluruh struktur tabel tanpa data, perintah kedua untuk migrasi hanya data, perintah ketiga untuk dumping struktur tabel dan data. Ketikkan yes ketika ditanya.

Untuk migrasi hanya tabel tertentu, misal nama migrasi DEFT dan tabel yang akan dibuat migrasinya countries, berikut perintahnya:
yiic.bat deftmigrations TableDump  --name=DEFT --tableName=countries
Demikian artikel migrasi kali ini, semoga bisa membantu teman-teman semua. Jika artikel ini bermanfaat silakan share atau komentar di bawah. Terimakasih :)


PHP Mahir, Mahirin skill PHP lo!


Tidak ada komentar:

Posting Komentar

Jika Anda memiliki tanggapan dan pertanyaan silakan isi form komentar berikut, kami akan menjawabnya segera. :)