SORU
10 AĞUSTOS 2012, Cuma


EF Göçler: geri alma son uygulanan geçiş?

Bu çok yaygın bir görev gibi görünüyor, ama bunu yapmak için kolay bir yol bulamıyorum.

En son uygulanan geçiş geri almak istiyorum. Basit bir komut gibi beklerdim

PM> Update-Database -TargetMigration:"-1"

Bunun yerine, aklıma gelen tek şey:

PM> Get-Migrations

Retrieving migrations that have been applied to the target database.
201208012131302_Add-SystemCategory
201207311827468_CategoryIdIsLong
201207232247409_AutomaticMigration
201207211340509_AutomaticMigration
201207200025294_InitialCreate

PM> Update-Database -TargetMigration:"CategoryIdIsLong"

(En azından sadece adı, zaman damgası,...) atlama kullanabilirsiniz

Daha kolay bir yolu var mı?

CEVAP
21 Mayıs 2014, ÇARŞAMBA


Bu konuya biraz açıklık eklemek istiyorum:

Update-Database -TargetMigration:"name_of_migration"

Yukarıda ne yaptığını göç belirtilen kaldı KADAR tüm göçler geri almak istediğini söylüyor. Böylece, eğer kullandığınız AL-GÖÇLER ve bulduğunuz var A, B, C, D, E, sonra kullanarak bu komut geri alma E ve D için C:

Update-Database -TargetMigration:"C"

Herkesin aksine açıklama olmadıkça da, bir sıra değeri ve kısa vadeli Hedef anahtarını kullanabilirsiniz fark ettim (bu nedenle, -Hedef-TargetMigration) aynıdır. Geri almak için tüm göçler istiyorum ve yeniden başlamak, kullanabilirsiniz:

update-database -target:0

0, yukarıda, geri alma hatta İLK göç--sana bir şey yapamaz eğer kullandığınız yukarıdaki sözdizimi gerektirir adının hedef göç (adı 0 geçiş yok önce bir geçiş uygulanır!). Bu durumda, (sıralı) 0 değerini kullanın. Aynı şekilde, eğer uygulanan göçler A, B, C, D ve E (bu sırada), sonra sıra 1 olmalıdır bakın, sıra 2 olmalıdır başvurmak için B, ve benzeri. B işlemi için de kullanabilirsiniz:

Update-Database -TargetMigration:"B"

ya

Update-Database -TargetMigration:2

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Dogbert files

    Dogbert file

    12 Ocak 2012
  • Plugable

    Plugable

    19 Mayıs 2010
  • whatever

    whatever

    30 EYLÜL 2005