2014-08-27 20 views
8

Taşmaları yönetmek için FluentMigrator kullanan bir projeyi miras aldım. Başlangıçta proje, uygulama başlatıldığında, ancak işlem başladığında geçişleri yürütüyordu. bunun üzerinde çöktü ve şimdi tüm veritabanı değişikliklerinde bir DBA'ya komutlar sunmak zorundayız.FluentMigrator geçişleri yürütmüyor

Bu geçişin bir parçası olarak, geçişleri Göçler adı verilen yeni bir projeye taşıdım. Komut satırı aracını kullanarak geçişleri çalıştırmayı denediğimde, çalıştığı görülüyor, ancak veritabanına hiç geçiş yapılmıyor. Veritabanı dizesi doğrudur, çünkü VersionInfo tablosu yoksa, oluşturulur. enter image description here

Bazı geçişler var, ancak bunların çoğu çok basit. Ben SQL Server 2012 ve FluentMigrator 1.2.1 kullanıyorum

enter image description here

: İşte ilk birinin bir örnektir.

.\Packages\FluentMigrator.1.2.1.0\tools\migrate.exe -c "Data Source=.;Integrated Security=True;Initial Catalog=portal_test" -db sqlserver2012 -a .\source\Migrations\bin\Debug\migrations.dll 

Ve örnek göç: Burada

gunr2171 için metinde komut satırı olan

using System; 
using System.Collections.Generic; 
using System.Linq; 
using FluentMigrator; 

namespace Migrations 
{ 
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")] 
    [Migration(1)] 
    public class M001_CreateAccountTable : Migration 
    { 
     public override void Up() 
     { 
      Create.Table("Accounts") 
       .WithColumn("Id").AsInt32().NotNullable().Identity().Unique() 
       .WithColumn("PartnerCode").AsString().Nullable() 
       .WithColumn("AccountType").AsInt32().NotNullable() 
       .WithColumn("Code").AsString().NotNullable().Unique().PrimaryKey() 
       .WithColumn("Name").AsString().NotNullable() 
       .WithColumn("PrimaryDomainName").AsString().Nullable() 
       .WithColumn("IsFederated").AsBoolean().NotNullable() 
       .WithColumn("IsActive").AsBoolean().Nullable().WithDefaultValue(1) 
       .WithColumn("FederatedEndpoint").AsString().Nullable() 
       .WithColumn("CreatedBy").AsString().NotNullable() 
       .WithColumn("CreatedOn").AsDateTime().NotNullable().WithDefaultValue(DateTime.Now) 
       .WithColumn("ModifiedBy").AsString().NotNullable() 
       .WithColumn("ModifiedOn").AsDateTime().NotNullable().WithDefaultValue(DateTime.Now); 
     } 

     public override void Down() 
     { 
      Delete.Table("Accounts"); 
     } 
    } 
} 
+1

VersionInfo tablosunda herhangi bir önceki geçiş var mı? Visual Studio'da hata ayıklama dll hata ayıklama (ve serbest değil) olarak mı oluşturuyorsunuz? –

+1

Bunun dibine hiç ulaştın mı? –

cevap

5

Ben de aynı şeyi başlamıştı ve bu ortaya çıktı olmak o montaj ile içindeki geçişler sürüm kullanılarak yazılmıştır, diyelim ki, 1.x ve bunları 2.x sürümünden Migrate.exe ile çalıştırıyordum.

Migrate.exe, geçişleri oluşturmak için kullanılan sürümün aynısını kullanarak DLL benim için çözdü.

+0

Bu benim için çalıştı. İleriye dönük olarak uyumlu olmamak, anlayabiliyorum, ancak güncelleme başarısız olduğunda bir tür hata üretmemek bana bir gözetim gibi geliyor. –