• Uyarı

Trickler Laravelde Migrasyonların Sıralamasını Değiştirme

  • Konbuyu başlatan impROS
  • Başlangıç tarihi

impROS

Member
Yönetici
Laravel Artisan
#1
Laravel, migrasyon dosyası oluştururken otomatik olarak zaman damgası eklenir. Bu zaman damgaları önemlidir, çünkü laravel tabloları oluştururken bu sıralamaya göre oluşturur. Tarihler aynı ise alfabetik sıraya göre öncelik sıralaması verir.

Fakat örnek bir senaryo olarak eğer "product_details" migrasyon dosyanızda, "products" tablonuz ile bir ilişki kurarsanız; "product_details" dosyası, "products" tablosundan önce oluşturulursa, henüz ilişki kurulamaz ve hata alırsınız. Bu yüzden migrasyon sıralamalarını yaparken bu durumu göz önünde bulundurmanız gerekmektedir. Örnek olarak şöyle bir durumda "products" tablosuna ait migrasyon dosyası, "product_details" den sonra eklenmiş olsun ve biz bunu tekrar sıralamak isteyelim. Bunun için dosyanın zaman damgalarıyla oynamamız lazım:


2020_07_24_010502_create_product_details_table.php
2020_07_24_010611_create_products_table.php


Burda products tekrar adlandırarak, migrasyonuna daha 010502 değerinden daha küçük bir değer vermemiz gerekiyor. Örnek olarak 010501 verelim:

2020_07_24_010501 create_products_table.php
2020_07_24_010502_create_product_details_table.php

Artık Laravel bu migrasyon dosyalarını oluştururken product tablosunu daha önce oluşturacak ve ilişki hatası almayacağız.
 

mgsmus

New member
Yönetici
Laravel Artisan
#2
Bu migrasyonlar daha önce oluşturulmuş ise migrations tablosuna bu isimlerle yazılmış demektir. Bu tür değişiklikler yaptığınızda ya migrations tablosuna da elle müdahele edeceksiniz ya da migration:fresh ile baştan oluşturmanız gerekecek. Yani bu tür değişiklik yaptığınızda migrate:rollback gibi komutları kullanamazsınız.