laravel

Laravel Cara menambah lajur ke jadual yang ada

Laravel Cara menambah lajur ke jadual yang ada

Masalah

Menambah lajur baru ke migrasi Laravel anda adalah perkara biasa. Aplikasi dimaksudkan untuk diskalakan yang bermaksud bahawa menambahkan ciri baru mengembangkan aplikasi anda lebih jauh.

Selalunya, pembangun Laravel baru perlu menjalankan migrasi mereka tetapi mereka tidak memastikan bahawa migrasi dapat bergulir dan berpindah berkali-kali tanpa melanggar apa-apa.

Walaupun itu bukan fokus kami, saya rasa penting untuk menyatakannya sebelum kita menghadapi masalah kita.

Berikut ini adalah masalah umum yang akan cuba dilakukan oleh pembangun Laravel baru apabila mereka ingin menambahkan lajur baru ke jadual yang ada.

Jadi pada ketika ini mereka sudah melakukan sesuatu seperti:

fungsi awam meningkat ()

Skema :: create ('organisasi', fungsi ($ table)
$ table-> kenaikan ('id');
$ table-> string ('name') -> nullable ();
$ table-> text ('about') -> nullable ();
);

Ini akan membuat jadual baru untuk mereka. Dan untuk menjadikannya bersih, anda juga harus menambah fungsi turun dan hanya menjatuhkan keseluruhan jadual anda dalam kes ini. Fungsi turun akan dijalankan semasa anda ingin memutar balik migrasi anda.

Melompat semua itu, masalah sebenarnya muncul apabila mereka melupakan satu lajur dan mereka ingin menambahkannya selepas itu sehingga mereka membuat fail migrasi baru (kelas) cuba menjalankan sesuatu seperti:

fungsi awam meningkat ()

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

Mereka berharap dapat menambahkan ukuran lajur baru ke jadual yang ada.

Sekarang mari kita lihat apa yang berlaku dan bagaimana mencegahnya daripada berlaku lagi.

Penyelesaian

Masalah utama di sini ialah apa yang sering kali dilupakan oleh pembangun baru yang merupakan nama kaedah statik Skema . Anda hanya menggunakan buat ketika anda mula-mula membuat jadual anda. Sekiranya anda perlu mengemas kini jadual anda pada bila-bila masa, anda mahu menggunakan jadual sebagai gantinya.

Oleh itu, fungsi up sebenarnya harus seperti ini:

fungsi awam meningkat ()

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

Fungsi turun seperti ini:

fungsi awam turun ()

Skema :: jadual ('organisasi', fungsi ($ jadual)
$ table-> dropColumn ('size');
);

Cadangan peribadi saya kepada anda adalah bahawa setelah anda membuat fail migrasi baru (mengubah) anda lakukan perkara berikut:

Petua lain

Ini akan berguna di peringkat kemudian jika anda mahu mengotomatisasi penggunaan anda dan skrip anda perlu menjalankan rollback.

Petua lain yang dapat saya berikan kepada anda adalah merancang tempat anda mahu meletakkan lajur anda. Hanya dengan melakukan ini, Laravel akan meletakkan lajur baru anda di hujung, mungkin selepas lajur_ditambah. (Kebanyakan jadual mempunyai ini)

Anda ingin menggunakan kaedah selepas itu supaya kod akhir anda akan kelihatan seperti ini:

fungsi awam meningkat ()

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

Dalam kes ini, Laravel akan meletakkan lajur baru anda tepat selepas lajur nama sehingga kelihatan bagus dan tersusun dengan lebih baik.

Mengawal & menguruskan pergerakan tetikus antara beberapa monitor di Windows 10
Pengurus Tetikus Paparan Dwi membolehkan anda mengawal & mengkonfigurasi pergerakan tetikus antara beberapa monitor, dengan memperlahankan pergerakann...
WinMouse membolehkan anda menyesuaikan & meningkatkan pergerakan penunjuk tetikus pada PC Windows
Sekiranya anda ingin meningkatkan fungsi lalai penunjuk tetikus anda gunakan perisian percuma WinMouse. Ia menambah lebih banyak ciri untuk membantu a...
Butang klik kiri tetikus tidak berfungsi pada Windows 10
Sekiranya anda menggunakan tetikus khusus dengan komputer riba, atau komputer desktop anda tetapi butang klik kiri tetikus tidak berfungsi pada Window...