laravel

Laravel Mevcut bir tabloya sütun nasıl eklenir

Laravel Mevcut bir tabloya sütun nasıl eklenir

Sorun

Laravel geçişlerinize yeni sütunlar eklemek yaygın bir şeydir. Uygulamaların ölçeklenebilir olması amaçlanmıştır; bu, yeni özellikler eklemenin uygulamanızı daha da geliştireceği anlamına gelir.

Çok sık olarak, yeni Laravel geliştiricilerinin geçişlerini çalıştırmaları gerekir, ancak geçişlerin hiçbir şeyi bozmadan birden çok kez geri alınabileceğinden ve taşınabileceğinden emin olmazlar.

Odak noktamız bu olmasa da, sorunumuza geçmeden önce şunu belirtmenin önemli olduğunu düşünüyorum.

Aşağıdaki, yeni Laravel geliştiricilerinin mevcut bir tabloya yeni bir sütun eklemek istediklerinde yapmaya çalışacakları yaygın bir sorundur.

Yani bu noktada zaten şöyle bir şey yaptılar:

genel işlev yukarı()

Schema::create('kuruluşlar', function ($tablo)
$table->increments('id');
$table->string('name')->nullable();
$table->text('about')->nullable();
);

Bu onlar için yeni bir tablo oluşturacak. Ve bunu temizlemek için, aşağı işlevini de eklemeli ve bu durumda tüm tablonuzu bırakmalısınız. Geçişinizi geri almak istediğinizde aşağı işlevi çalıştırılacaktır.

Tüm bunların üzerinden atlayarak, asıl sorun bir sütunu unuttuklarında ortaya çıkıyor ve daha sonra bunu eklemek istiyorlar, böylece yeni bir geçiş dosyası (sınıf) oluşturmak için şöyle bir şey çalıştırmayı deneyin:

genel işlev yukarı()

Schema::create('kuruluşlar', function ($tablo)
$table->integer('size')->nullable();
);

Mevcut tabloya yeni bir sütun boyutu eklemeyi umuyorlar.

Şimdi ne olacağını ve bunun tekrar olmasını nasıl önleyebileceğimizi görelim.

Çözüm

Buradaki ana sorun, yeni geliştiricilerin genellikle, şemanın statik yöntem adı olan fark etmeyi gözden kaçırma eğiliminde olmasıdır . Create'i yalnızca başlangıçta tablonuzu oluştururken kullanırsınız. Tablonuzu herhangi bir zamanda daha fazla güncellemeniz gerekirse, bunun yerine tabloyu kullanmak istersiniz.

Yani gerçek yukarı işlevi şöyle olmalıdır:

genel işlev yukarı()

Schema::table('kuruluşlar', function ($tablo)
$table->integer('size')->nullable();
);

Ve aşağı işlevi şöyle olurdu:

genel işlev aşağı()

Schema::table('kuruluşlar', function($tablo)
$table->dropColumn('size');
);

Size kişisel önerim, yeni (değişen) geçiş dosyanızı oluşturduktan sonra aşağıdakileri yapmanızdır:

Başka bir ipucu

Dağıtımınızı otomatikleştirmek istiyorsanız ve komut dosyanızın bir geri alma çalıştırması gerekiyorsa, bu daha sonraki bir aşamada kullanışlı olacaktır.

Size verebileceğim bir diğer ipucu da sütununuzu nereye yerleştirmek istediğinizi planlamak. Sadece bunu yaparak, Laravel yeni sütununuzu en sona, muhtemelen update_at sütunundan sonra yerleştirecektir. (Çoğu tablo buna sahiptir)

Son kodunuz şöyle görünecek şekilde sonra bir yöntem kullanmak istiyorsunuz:

genel işlev yukarı()

Schema::table('kuruluşlar', function ($tablo)
$table->integer('size')->after('name')->nullable();
);

Bu durumda, Laravel yeni sütununuzu isim sütununun hemen arkasına yerleştirecek, böylece güzel görünecek ve çok daha iyi organize edilecektir.

Add Mouse gestures to Windows 10 using these free tools
In recent years computers and operating systems have greatly evolved. There was a time when users had to use commands to navigate through file manager...
Control & manage mouse movement between multiple monitors in Windows 10
Dual Display Mouse Manager lets you control & configure mouse movement between multiple monitors, by slowing down its movements near the border. Windo...
WinMouse lets you customize & improve mouse pointer movement on Windows PC
If you want to improve the default functions of your mouse pointer use freeware WinMouse. It adds more features to help you get the most out of your h...