lilydocs
HTTP APIWebSocketConsumer
Veri2 dk okuma

MongoDB transaction ve migration

Açık transaction kararları ve sürümlü migration planlarıyla MongoDB işlemlerini yönetin.

MongoDB transaction’ının commit veya abort kararını uygulama verir. PostgreSQL’deki scoped workflow davranışının aynısını varsaymayın.

Transaction hazırlığı#

MongoDB bağlantısını kurun. Transaction destekleyen bir deployment, örneğin uygun replica set, gerekir. Önce verify_transaction_capability() ile desteği kontrol edin.

İşlem sırası#

  1. DatabaseService::operation_context(token) ile configured context oluşturun.
  2. begin_transaction(&operation) çağırın.
  3. İşlemlere aktaracağınız context’te with_transaction(&transaction) seçin.
  4. Domain işlemlerini bu context ile yürütün.
  5. Başarıda açık commit, hatada açık abort kararı verin.

Bu sıra bir işlem tarifidir. Hata önceliği, cleanup bütçesi ve belirsiz commit sonucu uygulamanızın transaction wrapper’ında ele alınmalıdır.

İptal sonrası cleanup#

İptal olmuş operation token’ını abort için yeniden kullanmak temizliğin hemen kesilmesine yol açabilir. Cleanup için ayrı ve süreyle sınırlandırılmış context kurun. Commit sonucu belirsizse verinin kesin geri alındığını söylemeyin; domain’inizin yeniden deneme/idempotency politikasını uygulayın.

Sürümlü migration#

Migration akışı MongoMigration::new(positive_version, name, steps) → MongoMigrationRunner::new(&database, plan) → apply(&operation) şeklindedir.

MongoCollection index/unique attribute’ları migration adımı üretir; collection initialize içinde otomatik DDL çalıştırmaz. Migration’ı bilinçli bir başlangıç veya deployment adımı olarak uygulayın.

Runner version/checksum doğrulaması ve dağıtık lease ile planı yönetir. Birbirinden bağımsız framework bileşenleri for_component ile ayrı namespace seçebilir. Uygulanmış migration’ı sessizce değiştirmek yerine yeni sürüm ekleyin.

CrudService sınırı#

CrudService derive, Mongo repository üzerinde DTO CRUD üretir. HTTP controller macro’su veya PostgreSQL için ortak CRUD motoru değildir. Generated çağrıları detached Mongo operation context kullanır. HTTP deadline veya transaction gerektiren akışlarda açık domain method’larını tercih edin.

Örnek kapsamı. Mongo API ve derive sözleşmeleri yayımlanan kaynakta incelenmiştir. İlk incelemedeki collection derlemesi facade öncesine aittir; güncel örnek doğrulaması test sayfasında ayrı belirtilir. Bu sayfadaki transaction/migration tarifi canlı Mongo senaryosunda doğrulanmış bir uygulama testi değildir.

Bu sayfanın kaynakları v0.1.0

Anlatım, incelenen framework commit’ine dayanır.

HIZLI BAŞLANGIÇ
Dokümantasyon
Kaynak kod