2013-02-15 25 views
5

Visual Studio 2010'da Entity Framework 5'i kullanarak geçişleri etkinleştirilmiş bir ASP.NET MVC 4 projesi oluşturdum. Çevreye bağlı olarak farklı veritabanı bağlantılarını belirleyecek farklı ortamlar için (Debug, Staging, Release) çoklu web yapılandırma dosyaları var. Birden çok yapılandırma dosyasıyla Paket Yöneticisi Konsolu'ndan Update-Database komutunu kullanarak geçişleri nasıl ele alabilirim? Bu komutu her çalıştırdığımda, varsayılan olarak ana Web.config bağlantı dizesine gider. Şimdiden herhangi bir yardım için teşekkürler.Çoklu Web Yapılandırması İçeren Entity Framework Geçişleri

+0

Kodunuzu çeşitli ortamlara nasıl dağıtıyorsunuz? yani. Visual Studio'yu kullanarak? CI Jenkins? –

+0

Şu anda Visual Studio'da yayınlama web seçeneğini kullanıyorum. – bbango

+0

Veritabanını güncellemek için bir seçenek olduğunu düşündüm –

cevap

6

Öğeleri olabildiğince basit tutmaya çalışabilmek için, uzak aşamalandırma ve üretim sunucularında taşıma işlemlerini gerçekleştirme yolumun çalışması, paket konsolundan aşağıdaki komutu çalıştırmaktır (veri kaynağı ve kullanıcı/geçiş değişecektir) hangi sunucu bağlı I) karşı taşıma işlemini istedi:

Bu başka durumda herkes benim için bugüne kadar çalıştı
Update-Database -Verbose -ConnectionString "Data Source=ServerName;Initial Catalog=db;User Id=user;Password=pass;" -ConnectionProviderName "System.Data.SqlClient" 

bakıyor. Yorumlarınız için herkese teşekkürler.

0

Farklı bölgelere geçiş yapmak için Web config transform tool kullanmalısınız, bunun Entity Framework Migrations'nin sorumluluğu olduğunu sanmıyorum.

+1

Dönüşümler düzgün çalışıyor. Taşıma işlemlerini nasıl ele alacağımı ve veritabanını farklı ortamlarda nasıl güncelleyeceğimi açık değilim. – bbango

0

http://msdn.microsoft.com/en-us/data/jj618307.aspx

EF Kod İlk Göçler sen 'update' komut istemi ile komutları çalıştırmak için izin veren bir migrate araç bulunur.

Kurulumunuzun nasıl olduğundan emin değilim, ancak CI sunucumuz (Jenkins) aracılığıyla kodu dağıttığımız yerde benzer bir şey yaptık. Daha sonra güncelleme veritabanını komut satırından çalıştırmak için bir posta dağıtım adımı ekledim.

Bunun için harika olan bağlantı dizelerini de belirtebilir.

Yine, bunun sizin işleminize nasıl uyduğuna bağlı olarak, bunu sizin için yürütmek için bile Nant'ı kullanabilirsiniz.

Bu yardımcı olur umarım.

+0

Bu migrate.exe aracı, aradığım şey olabilir. Dağıtım sürecinizle ilgili sahip olduğum bir yan soru, geçişin başarısız olması veya beklenmedik bir durumun ortaya çıkması durumunda nasıl geri dönersiniz? – bbango

+0

Biz tradional yolu geri alırdık. DBMigrations, bir geçiş komut dosyasını hedeflemenizi sağlar (geri almanız gerekirse) ancak üretim sunucularınızı geri almak için buna güvenmem. Ayrıca, geçişlerden bir komut dosyası da oluşturabilirsiniz. –