Laravel Türkiye Discord Kanalı Forumda kod paylaşılırken dikkat edilmesi gerekenler!Birlikte proje geliştirmek ister misiniz?

Daha sonra siliyomusunuz ? diyelimki rolleri oluşturan bir roleseeder .php oluşturdunuz çalıştırdınız ve veritabanında gerekli işlemler yapıldı bundan sonra bu dosyayı silmek herhangi bir bütünlüğü bozarmı ? Şöyle bir örnekde olabilir Rolleri oluşturduktan sonra Rolseeder adlı dosyanın en altına yeni bir rol eklemek istediğinizde hata veriyor bende dosya içindeki eski rolleri yorum satırına cevirip yeni rolü öyle ekliyorum bunun bi mahsuru varmı acaaba yada işim bitnce bu dosyayı silmemim bi mahsuru varmı ?

Seeder dosyasını neden silmek istiyorsunuz?

Burada amaç geliştirme ortamında size hazır veriler sunmak.

Veri tabanı düzeyinde bir değişiklik gerektiğinde,

php artisan migrate:fresh --seed

komutu ile tüm veritabanını silip, yeniden migration ve seeder ları tetikliyorum ben.

bilmemki illaki çekip çevirmem lazım ortalığı sevmiyorum dagınıklık sanırım başka açıklaması yok en azından mantıklı bir açıklaması yok . Rolleri olusturdum işim bitti başka rol oluşturmıyacagım kesin olarak 5 role ihtiyacım vardı seederin işide bitti neden dursunki ? ayrıca
php artisan migrate:fresh --seed komutu tüm veritabanını yeniliyor neden tüm tablolarımı yenileyimki gibi uzatabilirimde ancak tutulur bir tarafı yok sadece tamamen titizlik işime yaramıyo durmasın orda gibi bişiler işte

    isset Böyle bir kullanım görmedim. Ancak siz bilirsiniz tabii. Seeder'ı çalıştırdıktan sonra bir daha çalışmayacaksa ve veritabanında değişiklik yapmayacaksanız RoleSeeder.php dosyasını silebilirsiniz. DatabaseSeeder ana dosyasından da $this->call içerisindeki tanımını kaldırmanız gerekir.

    php artisan migrate:fresh --seed

    komutunu ise yalnızca geliştirme ortamı için yazmıştım. Production ortamında kesinlikle kullanılacak bir şey değil.

    Ben genelde projelerde ilerlerken Migration, Model, Factory ve Seeder sıralamasına göre giderim.

    Her model için Factory ve Seeder'lar hazırlarım.

    Projenin belirli bir yerinde bazı tablolarda sütun eklemem/çıkarmam ya da yapısal değişiklik yapmam gerektiğinde, yukarıda yazdığım kodu kullanırım. Zaten geliştirme ortamında çalıştığım ve de sahte verilerim olduğu için önemsemem yani.

    Günün sonunda nasıl mutluysanız öyle çalışın. İşiniz bittikten sonra Seeder'ı silmenizin bir zararı olmaz.

    Şimdi aklıma bir şey daha geldi. Sanıyorum sorunuza bir cevap olabilir belki.

    Bazı geliştiriciler, örneğin RoleSeeder gibi bir defa çalışacak komut için Seeder yazmak istemiyorlar.

    Bu durumda, Seeder Class'ı yazmak yerine, bu işlemi ilgili migration dosyasının içerisinde yapıyorlar.

    Aşağıdaki videoda bu duruma örnek verilmiş.

    1:33'e giderseniz direkt görebilirsiniz;

    https://www.youtube.com/watch?v=OTQ6HfoA5Qw

    tamam anladım teşekkür ederim seeder oluşturmaya bile gerek yok , Başka bir videodada Databaseseederin içinde yapıyo bunu yani yeni bir seeder oluşturmuyor bile ,tekrar çok mersi kolay gelsin

    Geliştirme tamamlandığında hosta atarken atma see migrsiation factory gibi dosyaları olsun bitsin

    php artisan make denince bu çıkıyo

    none ........................................................................................... 0  
      all ............................................................................................ 1  
      factory ........................................................................................ 2  
      form requests .................................................................................. 3  
      migration ...................................................................................... 4  
      policy ......................................................................................... 5  
      resource controller ............................................................................ 6  
      seed ........................................................................................... 7  

    benim sorum aslında şuydu soru deyilde anlamaya çalıştığım şey diyelim . form request , resource controller ve migration dosyalarını biz oluşturuyoruz ama varlıklarını korumak zorunda. kullanmadım ama sanırım policy içinde aynı durum söz konusu çünkü oluşturulduktan sonra iş görüyorlar migration için emin emin değilim yani migration dosyasında

     public function down(): void
        {
            Schema::drop('tablename');
        }

    bu kod blogu yüzünden emin değilim sanırım bu blok yüzünden oda durmak zorunda ama Seed ve factory bunlarla aynı klasmanda değiller

      isset Küçük ve tek kişilik projelerde faydasını görmeyebilirsiniz. (Gerçi ben hep faydasını görüyorum)

      evet farkındayım herkes profesyonel . Herkese sonsuz minnettarım . teşekkürler

        isset
        Ben profesyonel degilim kardeşim sadece fikir yada öneri artık adına ne dersen

        isset

        1. Projede kullanıcılar, firmalar, tanımlamalar, ürünler, özellikler, özelliklerin özellikleri, kategoriler, tipler, fiyatlandırmalar vs bir sürü bileşen var ve bunları hepsi birbirine ilişkisel olarak bağlı. Siz arayüzde bir kaydı görmeniz için bazen 10 bazen 1000 tane sorgu yapılması gerekiyor. Ekrandaki o satırın oluşması için bazen art arda 20-30 işlemin yapılması gerekebiliyor. Geliştirme ortamı sonuçta, bir şekilde bu ortamı kaybetme riskimiz var. Disk gidebilir, veri tabanı hasar görebilir, bir hatadan dolayı veri yapısı bozulabilir. Bu gibi durumlarda migration ve seeder bizi kurtarıyor. php artisan migrate:fresh --seed yaptığımızda temiz, içi dolu bir proje elde edecek şekilde ayarlıyoruz, böylece eski kaldığımız yere ulaşmak için arayüzden vs bir sürü işlem yapmak zorunda kalmıyoruz.
        2. Seeder sadece örnek veri değil gerçek veriyi de barındırabilir. Örneğin çeşitli kodlar, il ilçe tanımlamaları, varsayılan değerler vs. Bunları hazırlarken sadece create değil upsert ya da updateOrCreate ile hazırlıyoruz, böylece production ortamında da arayüz girişi olmayan verilerin de güncellenmesini sağlıyoruz.
        3. Ekibe yeni bir arkadaş gelince projeyi alır, php artisan migrate --seed yapar, 1 dk içinde içi dolu çalışan bir proje elde eder ve adapte olması kolaylaşır.
        4. Proje yeni bir yere sıfır kurulmak istendiğinde çok hızlı bir şekilde varsayılan veri ile kurulabilir.

        isset evet farkındayım herkes profesyonel . Herkese sonsuz minnettarım . teşekkürler

        Ben iş yaparken en çok amelelik gerektiren işlerden nefret ederim; insanın yaptığı satır satır kontrol, tekrar tekrar girişler... O yüzden beni bunlardan kurtaracak şeyleri kullanmayı severim. Seeder, factory, migration, kendi yazdığım geliştirme komutları, toplu iş yapan bash scriptler bu şeylerden bazıları. Bence gereksiz yere alınmışsınız, kullanma ihtiyacı sizde hiç oluşmamışsa demek ki görmezden gelebileceğiniz bir şey.

        kesinlikle bir alınganlık söz konusu değil . evet farkındayım herkes profesyonel cümlesi gerçek ve ciddi düşüncem herhangi bişi ima felan etmedim hem @BoraN7 hemde @TurkMvc nin profilindeki sordugu sorularla benimkileri kıyaslarsanız aradaki uçurumu görebilirsiniz. Tüm içtenliğimle aynı şeyi tekrarlıyorum kesinlilkle çok profesyonller tekrar teşşekkür ediyorum

          • mgsmus

            Seviye 1375
          • Düzenlendi

          isset Ben direkt "tamam abi anladık herkes profesyonel burada, ben sizi rahatsız etmeyeyim" şeklinde anladım o yüzden üzüldüm, sebeplerini tek tek yazmaya çalıştım kusura bakmayın 😄 Ben hep derim bildiklerim bilmediklerimin yanında bir su damlası, ki kendimi hep ortalama bir yazılımcı olarak görmüşümdür. 🙂

            mgsmus aynen bende o kısma focus lafım kendimi direkt