laravel

Laravel Cara menambahkan kolom ke tabel yang ada

Laravel Cara menambahkan kolom ke tabel yang ada

Masalah

Menambahkan kolom baru ke migrasi Laravel Anda adalah hal yang umum. Aplikasi dimaksudkan untuk dapat diskalakan yang berarti menambahkan fitur baru akan mengembangkan aplikasi Anda lebih jauh.

Sangat sering, pengembang Laravel baru perlu menjalankan migrasi mereka tetapi mereka tidak memastikan bahwa migrasi dapat kembali dan bermigrasi beberapa kali tanpa merusak apa pun.

Meskipun itu bukan fokus kami, saya pikir penting untuk menyatakan itu sebelum kita menuju ke masalah kita.

Berikut ini adalah masalah umum yang akan coba dilakukan oleh pengembang Laravel baru ketika mereka ingin menambahkan kolom baru ke tabel yang ada:.

Jadi pada titik ini mereka sudah melakukan sesuatu seperti:

fungsi publik ke atas()

Skema::buat('organisasi', fungsi ($tabel)
$tabel->increments('id');
$tabel->string('nama')->nullable();
$tabel->teks('tentang')->nullable();
);

Ini akan membuat tabel baru untuk mereka. Dan untuk membuatnya bersih, Anda juga harus menambahkan fungsi turun dan cukup jatuhkan seluruh tabel Anda dalam kasus ini. Fungsi turun akan dijalankan ketika Anda ingin mengembalikan migrasi Anda.

Melompati semua itu, masalah sebenarnya muncul ketika mereka lupa satu kolom dan mereka ingin menambahkannya setelah itu sehingga mereka membuat file migrasi baru (kelas) mencoba menjalankan sesuatu seperti:

fungsi publik ke atas()

Skema::buat('organisasi', fungsi ($tabel)
$tabel->integer('ukuran')->nullable();
);

Mereka berharap untuk menambahkan ukuran kolom baru ke tabel yang ada.

Sekarang mari kita lihat apa yang terjadi dan bagaimana mencegah hal itu terjadi lagi.

Larutan

Masalah utama di sini adalah apa yang sering dilewatkan oleh pengembang baru yang merupakan nama metode statis dari Skema . Anda hanya menggunakan create ketika Anda pertama kali membuat tabel Anda. Jika Anda perlu memperbarui tabel Anda lebih lanjut kapan saja, Anda ingin menggunakan tabel sebagai gantinya.

Jadi fungsi real up harus seperti ini:

fungsi publik naik()

Skema::tabel('organisasi', fungsi ($tabel)
$tabel->integer('ukuran')->nullable();
);

Dan fungsi down akan seperti ini:

fungsi publik turun()

Skema::tabel('organisasi', fungsi($tabel)
$tabel->dropColumn('ukuran');
);

Saran pribadi saya kepada Anda adalah bahwa setelah Anda membuat file migrasi baru (mengubah) lakukan hal berikut:

Tip lain

Ini akan berguna di tahap selanjutnya jika Anda ingin mengotomatiskan penerapan dan skrip Anda perlu menjalankan rollback.

Tip lain yang bisa saya berikan kepada Anda adalah merencanakan di mana Anda ingin menempatkan kolom Anda your. Hanya dengan melakukan ini, Laravel akan menempatkan kolom baru Anda di akhir, mungkin setelah kolom updated_at. (Sebagian besar tabel memiliki ini)

Anda ingin menggunakan metode setelahnya sehingga kode akhir Anda akan terlihat seperti ini:

fungsi publik ke atas()

Skema::tabel('organisasi', fungsi ($tabel)
$table->integer('size')->after('name')->nullable();
);

Dalam hal ini, Laravel akan menempatkan kolom baru Anda tepat setelah kolom nama sehingga terlihat bagus dan terorganisir jauh lebih baik.

OpenTTD vs Simutrans
Membuat simulasi transportasi Anda sendiri bisa menyenangkan, santai, dan sangat menarik. Itulah mengapa Anda perlu memastikan bahwa Anda mencoba game...
Tutorial OpenTTD
OpenTTD adalah salah satu game simulasi bisnis paling populer di luar sana. Dalam game ini, Anda perlu membuat bisnis transportasi yang luar biasa. Na...
SuperTuxKart untuk Linux
SuperTuxKart adalah judul hebat yang dirancang untuk memberi Anda pengalaman Mario Kart gratis di sistem Linux Anda. Ini cukup menantang dan menyenang...