2010-08-29 6 views
7

codefirst EF4'ü ile veritabanı üstlenmeden için en iyi yöntemler nelerdir?Nasıl Elden Geçirme Kodu/DB şema EF 4 koduyla ilk - Veri Taşıma

Ben RecreateDatabaseIfModelChanges seçeneği mümkün olmadığı durumlarda insanların sınıfları ve veritabanı nasıl değiştiğini duymak ilgileniyorum. Verilerin taşınması gerekecek.

http://blogs.msdn.com/b/adonet/archive/2010/02/08/entity-designer-database-generation-power-pack.aspx?PageIndex=2#comments

herkes ilk kodu için iyi bir strateji var mı:

Şu anda Microsoft ilk modeliyle bu iş için bir çözümü var?

+0

Tam olarak ne arıyorsunuz? DB şemanızı CF ile yeniden düzenleyemezsiniz. – TheCloudlessSky

+3

, eğer onu uçurup yeniden yaratırsanız, onu yeniden düzenlemek zorunda değilsiniz, aksi halde, göçmenlik komut dosyalarını yazmanız ve uygulamanız gerekmeyecek mi? Aksi halde kodla eşleşmez. –

cevap

1

manken ve db şema senkron bozukluğu ve farklılık göstermek eğer webmaster bildirir veritabanı bağlam başlatıcısı üzerinde çalışıyorum. Bu, hem kod ilk modeli hem de veritabanı şeması üzerinde tam denetime sahip olmayı tercih eden geliştiriciler için yararlı olabilir. Şuna göz atın: EF ekibi göçler üzerinde çalışıyor olması

https://github.com/rialib/efextensions

1

Benim CodeFirst uygulamasında, yerel üretim olmama i belirtir bir app.config bayrağı var oluşturur. Üretimde olmadığımda, veritabanını tamamen temizler ve yeniden oluşturur. Benim üretim veritabanı kullanıcı benim web.config şekilde cevapsız dönüşümü bile veritabanını düşmesi izinlere sahip DEĞİLDİR beri benim üretim veritabanı silinmez (böylece EF veritabanını yeniden dener), ve bunun yerine bir istisna atılmış olacaktır.

Benim iş akışı şöyledir:

  1. Kontrol dışarı
  2. Hızla duman/regresyon testi değiştirir en son kod üretim dalı (bu zaten üretim dalı haline kodunu kontrol kala yapılan, ama sadece edilmelidir durumda) içinde
  3. benim üretim veritabanının son yedeğini indirin ve benim yerel kod yerel o recr beri bu üretim kodu olsa bile (yaratılan veritabanı arasında benim yerel SQLEXPRESS sunucusuna
  4. Run Open DBDiff kurun üretim yedeğine karşı veritabanını yiyor.
  5. Oluşturulan komut dosyalarını gözden geçirin ve bunları üretim yedeğine karşı çalıştırmaya çalışın
  6. Hata bulunmadığı varsayıldığında, veritabanının üretim yedeği ile oluşturulan kodun üzerine yazıp tüm verilerin sağlam olduğundan emin olmak için üretim verilerine karşı test gerçekleştirin; Gerçek üretim veritabanı üzerinde
  7. Çalıştır komut dosyalarını.

Adım # 2 otomatik olarak en yeni veri modelini temel alan yeni ve temiz bir veritabanı oluşturur. Bu nedenle, her zaman hazır olduğum geliştirme işlemlerinden kaynaklanan ve henüz üretime hazır olmayan geliştirme veritabanlarına sahip bir veritabanım olduğunu biliyorum.