DB ye yeni column ekleme islemi
Sorum şudur ki elimde verilerle dolu bir db olsun.Bu db ye sonradan yeni bir column eklemek istedigimde tum db yi refresh yapmak istemiyorum.Aynı zamanda php artisan make:migration add_new_fields_to_users_table komutu ile de bu islemi yapmak istemiyorum cunku bunlar cogaldikca cok hos gorunmeyecektir.
ten cunku bunlar cogaldikca cok hos gorunmeyecektir.
Bu geçerli bir bahane değil çünkü migrasyonlar depo mantığı ile çalışan, uygulamadan bağımsız, işlevselliği önemli olan opsiyonel bir özellik. İçinde kaç dosya olup olmadığı, hoş gözüküp gözükmediği sizi çok ilgilendirmiyor aslında. Enterprise bir uygulamada bu nasıl yapılıyor derseniz Sylius’un (Symfony) migrasyonlarına bakabilirsiniz:
Ayrıca migrasyonlar kurulurken ilk baştan sonra doğru kurulur; düşürülürken ise sondan başa doğru düşürülür, hata yapmanızı engeller. rollback özelliği de güzel bir özelliktir fakat dediğim gibi opsiyonel, seçim sizin.
Aslında cevabı kendiniz yazmışsınız. php artisan make:migration ile yapmanız ilerleyen zamanlarda problem yaşamanızın önüne geçecektir. Ama bu işi direk olarak MySQL ile de yapabilirsiniz.
ALTER TABLE tablo_adi ADD COLUMN sutun_adi VHARCAR(255) AFTER sonrasinda_gelecek_sutun_adi
Döküman : https://dev.mysql.com/doc/refman/8.0/en/alter-table.html
Ekrem siz ne düşünüyorsunuz @sineld ?
Projeyi tek kişi yürütüyorsanız yeni alanlar ekledikçe yeni migration oluşturmanıza gerek yok. Ben yaklaşık 4 yıldır geliştirmekte olduğum bir projeyi yalnız geliştirdiğim için yeni bir alan eklemek için yeni migration eklemiyorum, tabloya alanı ekliyor ve migration refresh yapıyorum. @Ekrem unutmayın, framework işinizi kolaylaştırmak içindir, herşeye birebir sadık kalacaksınız diye bir şey yok. En doğru yol budur demek imkansız, doğrularınıza siz karar vereceksiniz. Aynı zamanda, proje sizden sonra başkası tarafından sürdürülecekse framework’ün yapısının çok da dışına çıkılmamalıdır.