Cara mengubah tipe data kolom tabel MySQL di Laravel 5.4


Melalui tutorial ini saya ingin menjelaskan bagaimana caranya mengubah tipe data dalam tabel database MySQL menggunakan fitur migrasi di Laravel. Langsung saja berikut struktur tabel database sebelum saya ubah:


Saya berencana ingin mengubah tipe data pada kolom nama dari varchar(255) menjadi tipe TEXT.

Berikut langkah-langkah mengubah tipe data tersebut. Pertama saya akan buat file migrasi baru dengan nama alter_nama_to_string_on_bendera_table dengan perintah:

 php artisan make:migration alter_nama_to_text_on_bendera_table

jika berhasil, maka hasilnya akan mirip seperti pada gambar di bawah ini:



dari gambar di atas terlihat bahwa telah tercipta sebuah file dengan nama 2017_03_09_014929_alter_nama_to_text_on_bendera_table.php did alam folder database/migrations/

saya buka file tersebut dengan perintah:

 vim database/migrations/2017_03_09_014929_alter_nama_to_text_on_bendera_table.php

berikut isi dari file tersebut:

kemudian saya tambahkan sedikit script untuk merubah tipe data kolom nama dari varchar ke text sehingga scriptnya menjadi seperti berikut:

sebelum dilakukan migrasi, kita harus menginstall modul baru yaitu doctrine/dbal dengan menjalankan perintah:

 composer require doctrine/dbal

jika berhasil, maka proses instalasi-nya terlihat seperti berikut:


setelah itu saya jalankan proses perubahan tipe data dengan perintah:

 php artisan migrate

jika berhasil, maka prosesnya akan terlihat seperti berikut:


kemudian ketika saya lihat lagi kolom bendera, maka hasilnya seperti berikut:


silakan lihat pada baris nama, dari varchar(255) sudah berubah menjadi text. Selamat mencoba ya :-)

Comments

Dani said…
SQLSTATE[01000]: Warning: 1265 Data truncated for column 'produksiairbaku' at row 13 (SQL: ALTER TABLE prolistriks
CHANGE produksiairbaku produksiairbaku INT NOT NULL COLLATE utf8_unicode_ci)

saya terdapat error disini.
mohon solusinya.
Isi script alter tablenya bagaimana? Lalu struktur tabel sebelum diubah seperti apa?