Takım Ortamlarında GeçişlerMigrations in Team Environments

Ekip ortamlarında geçişlerle çalışırken, model anlık görüntü dosyasına fazladan dikkat edin.When working with Migrations in team environments, pay extra attention to the model snapshot file. Bu dosya, takımınızın geçiş işleminden sizinkiyle düzgün bir şekilde birleşiyorsa ya da bir çakışmayı paylaşmadan önce yeniden oluşturarak bir çakışmayı çözmeniz gerekiyorsa size bildirir.This file can tell you if your teammate's migration merges cleanly with yours or if you need to resolve a conflict by re-creating your migration before sharing it.

BirleştirmeMerging

Takım mateklarından geçişleri birleştirdiğinizde, model anlık görüntü dosyanızda çakışmalar alabilirsiniz.When you merge migrations from your teammates, you may get conflicts in your model snapshot file. Her iki değişiklik de ilgisiz ise birleştirme basit olur ve iki geçiş birlikte kullanılabilir.If both changes are unrelated, the merge is trivial and the two migrations can coexist. Örneğin, müşteri varlık türü yapılandırmasında şuna benzer bir birleştirme çakışması alabilirsiniz:For example, you may get a merge conflict in the customer entity type configuration that looks like this:

<<<<<<< Mine
b.Property<bool>("Deactivated");
=======
b.Property<int>("LoyaltyPoints");
>>>>>>> Theirs

Bu özelliklerin her ikisinin de son modelde bulunması gerektiğinden, her iki özelliği de ekleyerek birleştirmeyi doldurun.Since both of these properties need to exist in the final model, complete the merge by adding both properties. Çoğu durumda, sürüm denetimi sisteminiz sizin için bu değişiklikleri otomatik olarak birleştirebiliriz.In many cases, your version control system may automatically merge such changes for you.

b.Property<bool>("Deactivated");
b.Property<int>("LoyaltyPoints");

Bu gibi durumlarda geçişiniz ve ekip Mate geçişiniz birbirinden bağımsızdır.In these cases, your migration and your teammate's migration are independent of each other. Bunlardan biri önce uygulanamadığından, ekibinizle paylaşmadan önce geçişinize ek değişiklik yapmanız gerekmez.Since either of them could be applied first, you don't need to make any additional changes to your migration before sharing it with your team.

Çakışmaları çözmeResolving conflicts

Bazen model anlık görüntü modeli birleştirilirken doğru bir çakışma ile karşılaşırsınız.Sometimes you encounter a true conflict when merging the model snapshot model. Örneğin, sizin ve takımlarınızın her biri aynı özelliği yeniden adlandırmış olabilir.For example, you and your teammate may each have renamed the same property.

<<<<<<< Mine
b.Property<string>("Username");
=======
b.Property<string>("Alias");
>>>>>>> Theirs

Bu tür çakışmayla karşılaşırsanız, geçişinizi yeniden oluşturarak çözümleyin.If you encounter this kind of conflict, resolve it by re-creating your migration. Şu adımları uygulayın:Follow these steps:

  1. Birleştirme işleminden önce birleştirme ve çalışma dizininize geri alma işlemini iptal edinAbort the merge and rollback to your working directory before the merge
  2. Geçişinizi kaldırma (ancak model değişiklerinizi koru)Remove your migration (but keep your model changes)
  3. Ekipte yapılan değişiklikleri çalışma dizininiz ile birleştirinMerge your teammate's changes into your working directory
  4. Geçişinizi yeniden ekleyinRe-add your migration

Bunu yaptıktan sonra, iki geçiş doğru sırada uygulanabilir.After doing this, the two migrations can be applied in the correct order. Önce geçişi uygulanır, sütunu diğer adolarak yeniden adlandırır, bundan sonra geçişiniz bunu Kullanıcı adıolarak değiştirir.Their migration is applied first, renaming the column to Alias, thereafter your migration renames it to Username.

Geçişiniz, takımın geri kalanı ile güvenli bir şekilde paylaşılabilir.Your migration can safely be shared with the rest of the team.