Yönetici Özeti ve Mimari Önem
Prisma v8.0.0-rc.18, projenin evriminde çok önemli bir konsolidasyon aşamasını temsil ediyor ve daha sağlam, yüksek türde (highly-typed) veri modellemeye doğru bir geçişe işaret ediyor. PSL (Prisma Schema Language) karışımları (mixins) ve ad alanılar arası polimorfik varyantlar gibi gelişmiş yapılar sunarak, ekip kurumsal ölçekteki uygulamaların karşılaştığı karmaşıklık darboğazlarını hedefliyor. Bu sürüm yalnızca bir özellik yinelemesi değil; Prisma'nın SQL ve NoSQL arka uçlarıyla etkileşiminin tutarlılık, durum yönetimi ve geliştirici hızı odaklı yapısal bir iyileştirmesidir.
Mimari açıdan bu sürüm, daha modüler bir eklenti ve uzantı ekosistemine doğru geçişin altını çiziyor. Artefakt sürümlemesini —özellikle Supabase uzantı sözleşmeleri ve dahili çalışma alanı paketleri genelinde— normalleştirerek, Prisma güvenilirliğe olan bağlılığını pekiştiriyor. Düzinelerce yükseltme parçasını birleştirilmiş, sürümlü bir dizin yapısında sentezleme kararı, yaşam döngüsü yönetimine olgun bir yaklaşımı vurguluyor ve ORM'nin yetenekleri arttıkça ilk benimseyenler için bakım yükünün öngörülebilir kalmasını sağlıyor.
Temel İyileştirmeler ve Geliştirici Ergonomisi
Ağırlıklı çok alanlı tam metin araması ve bestelenebilir (composable) SQL değerlerinin eklenmesiyle geliştirici ergonomisi büyük bir destek alıyor. Bu özellikler, geliştiricilerin karmaşık sorgu mantığını doğrudan Prisma Client'a aktarmasına olanak tanıyarak zahmetli ham SQL dizeleri veya uygulama tarafı işleme ihtiyacını azaltıyor. PSL sembol navigasyonunun entegrasyonu ve geliştirilmiş dil sunucusu yetenekleri, 'Önce Tip Güvenliği' felsefesini pekiştirerek karmaşık şema ilişkilerinin daha hızlı hata ayıklanmasına ve geliştirme döngüleri sırasında geri bildirim döngülerinin kısalmasına olanak tanıyor.
Ayrıca, ORM yüzeyinin iyileştirilmesi —özellikle whereUnique ve firstOrThrow tanıtımı— daha önce uzun basmakalıp kodlar gerektiren yaygın kalıplar için sorgu sözdizimini standartlaştırıyor. MongoDB kullanıcıları için alan yeniden adlandırmaları ve zaman serisi güncellemelerinin işlenmesi, şema kayması ve veri tutarlılığı ile ilgili uzun süredir devam eden sorunları çözerek önemli bir güçlendirme görüyor. Bu ergonomik iyileştirmeleri derinlemesine şema özellikleriyle birlikte önceliklendirerek, Prisma üst düzey soyut mantığın okunabilir ve sürdürülebilir kalmasını sağlıyor.
Mimari Karşılaştırma Matrisi
| Metrik | Prisma v8.0.0-rc.17 | Prisma v8.0.0-rc.18 |
|---|---|---|
| Sorgu Gecikmesi | Temel (Standart) | İyileştirilmiş (SQL Optimizasyonu) |
| Bellek Yükü | Kararlı | Azaltılmış (GC iyileştirmeleri) |
| API Esnekliği | Katı ilişkiler | Yüksek (Karışımlar/Polimorfizm) |
| Şema Navigasyonu | Manuel/Standart | Gelişmiş (Sembol duyarlı) |
Kırılma Değişiklikleri ve Geçiş Uyarıları
v8.0.0-rc.18'e yükseltme yüksek riskli bir geçiştir. SQL orkestrasyon katmanı, ara katman yazılımı (middleware) ve geçiş motorları genelinde önemli kırılma değişiklikleri getirilmiştir. Önemli bir değişiklik, mevcut veritabanı şema özetlerinin (hashes) gözden geçirilmesini gerektiren storage-hash-may-change-once mantığını içerir. Ayrıca, localVariantName yerine localVariantValue kullanılması, polimorfik varyantları veya birleşim tablosu ilişkilerini kullanan tüm kod tabanları için acil işlem gerektirir. Geliştiriciler, tanımlanan 87 yükseltme parçasını —41'i uygulama kodu ve 46'sı uzantılar için— kritik yollar olarak ele almalıdır; çünkü bunları göz ardı etmek, sözleşme artefaktlarının en son motorla uyumlu hale gelmemesine neden olacaktır.
Adım Adım Yükseltme Kılavuzu
Ortam Hazırlığı: Tüm çalışma alanı bağımlılıklarının
8.0.0-rc.18sürümüne sabitlendiğinden emin olun. Kilit dosyasını (lockfile) yeni çalışma alanı belirleyicileriyle senkronize etmek içinpnpm updateve ardındanpnpm installkomutlarını çalıştırın.Artefakt Yenileme:
contract-artifacts-restampgüncellemelerini uygulayın. Eski SQL ifade değişmezlerini yeni sözdizimi kısıtlamalarına otomatik olarak geçirmek için sağlananrewrite-sql-strings.mjsbetiğini (scripts/sql-expression-literals-psl/dizininde bulunur) kullanın.Manuel Doğrulama: Şemanızı yeni
localVariantValuealanı için denetleyin.includeifadelerinizdekilocalVariantNameveyalocalTableNamereferanslarını değiştirin. Son olarak, şema değişikliklerinizi işlemeden önce eski yapılandırmaların kalmadığından emin olmak içinpnpm check:upgrade-coveragekomutunu çalıştırın.
