Awesomeness of Laravel Migration (mungkin part 1)

Saya kembali dengan hal yang sedikit dan agak teknis. Kali ini tentang bagaimana Laravel Migration bisa menyelamatkan akhir pekan dan membuat saya bisa maraton nonton serial Tetangga Masa Gitu. Haha! Mungkin penemuan ini bukan hal yang sangat sophisticated, tapi semoga bermanfaat.

image from http://www.eccv.org

Jadi, kali ini ada challenge untuk migrasi data dari sebuah skema basis data ke skema lainnya. Sisi keren dari migrasi ini adalah akses data yang diberikan dari skema yang lama hanya berupa ekstraksi datanya saja; berupa file JSON. Setelah melakukan analisis berjam-jam untuk menentukan skema basis data yang sesuai dengan isi JSON tersebut *halah* maka proses parsing dan seeding tabel bisa dilakukan. Tapi bagaimana caranya?

Yang pertama saya pikirkan memang bagaimana bisa seeding database dengan file JSON menggunakan laravel migration. Daripada pake php biasa dan menggunakan browser, pasti terhambat request time dll… Kemudian saya nemu tutorialnya di sini http://dixitpatel.com/how-to-seed-database-from-json-in-laravel/ setelah beberapa kali googling dengan gonta-ganti keyword.

Intinya mengganti inputan seeder dengan file JSON tersebut.

Struktur file seeder Laravel yang ‘normal’:

http://pastebin.com/embed_iframe.php?i=pir74qXG
Kemudian bisa disesuaikan menggunakan inputan file JSON:

http://pastebin.com/embed_iframe.php?i=S6z14PLc

Jangan lupa edit file DatabaseSeeder.php, sesuaikan dengan nama file seeder yang mau dipanggil.

Sekian. Semoga menyelamatkan hari libur Anda.

Salam hangat untuk orang-orang terdekat.

*codenya belum bisa inline..hehe will be updated soon*

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s