8

Web genelinde yanıt bulamadığım bir sorunum var.EF 4.3 Taşıma - bir indirme senaryosu nasıl oluşturulur?

MsSQL ile CodeFirst EF 4.3.1 geçişlerini kullanıyorum.

Birkaç geçişi ekledim ve şimdi iki geçiş arasında yükseltme/indirme için bir komut dosyası oluşturmak istiyorum. Yükseltme için

başarıyla bir yükseltme komut çoğalır aşağıdaki komutu çalıştırın:

PM> Update-Database -Script -SourceMigration:"201205161203310_BlogLimitsAndTableRename" -TargetMigration:"201205161144187_AddPostAbstract" 
Scripting the downgrade between two specified migrations is not supported. 

herhangi bir fikir: Ben aşağıdaki hata nedeniyle başarısız aşağıdaki komutu çalıştırın alçaltma için,

PM> Update-Database -Script -SourceMigration:"201205161144187_AddPostAbstract" -TargetMigration:"201205161203310_BlogLimitsAndTableRename" 

Ancak Bir sürüm düşürme komut dosyası nasıl oluşturabilirim?

Teşekkürler.

cevap

10

Taşıma API'sı, yalnızca son sürümden düşürmek istediğinizi tahmin ediyor gibi görünüyor.

BlogLimitsAndTableRename ise en son göç (son uygulanan) basitçe çalıştırabilirsiniz edilir:

Update-Database -Script -TargetMigration:"201205161144187_AddPostAbstract" 

o öncelikle buna geliştirme veritabanını geri döndürmeniz gerekir son göç değilse:

Update-Database -TargetMigration:"201205161203310_BlogLimitsAndTableRename" 

ve şimdi bir komut dosyası almak için ilk komutu kullanabilmeniz gerekir.

+0

Bu bir anlam ifade ediyor. 5 numaralı veritabanında veritabanı olduğunu düşünün ve 4'ten 3'e düşürmek için bir komut dosyası almaya çalışın. Daha sonra veritabanı kolayca bozulabilir. Ya gerçekten devlet 4'teki db'ye işaret etmek ya da yerel olarak 4'e itmek, geri dönüşü olmayan bir karışıklık yapmadan önce bunu düşünmenizi sağlar. OTOH bazı -Force anahtarı veya büyük kırmızı uyarı ile desteklenebilir. :) –

+1

5 numaralı veri tabanına sahip olmayı düşündüm ve şimdi 5'den 2'ye düşürmek için bir betik aldım. EF göçü beni 5'den 4'e düşürmeye zorladı, sonra 4'ten 3'e ve sonra 3'den 2'ye düştü Tek isteğim, onları gerçekten yürütme gereği duymadan tüm bu alt notları içerecek olan tek bir betik üretmektir. (Örneğin yükseltme için 5 numaralı durumda bir veritabanınız olabilir ve 2'den 5'e yükseltme komut dosyası oluşturabilirsiniz). – mayash

+0

Veya 5 numaralı durumda bir veritabanına sahip olabilirsiniz ve 2'den 4'e yükseltilmiş bir komut dosyası oluşturabilirsiniz. – mayash

İlgili konular