मुझे एक ऐसी परियोजना मिली है जो माइग्रेशन प्रबंधित करने के लिए FluentMigrator का उपयोग करती है। मूल रूप से यह प्रोजेक्ट शुरू होने पर प्रोजेक्ट माइग्रेशन प्रक्रिया में निष्पादित कर रहा था लेकिन आईटी। उस पर क्रैक हो गया है और अब हमें अपने सभी डेटाबेस परिवर्तनों के लिए डीबीए को स्क्रिप्ट प्रदान करनी है।FluentMigrator माइग्रेशन नहीं चला रहा
इस संक्रमण के हिस्से के रूप में मैंने माइग्रेशन को माइग्रेशन नामक एक नई परियोजना में स्थानांतरित कर दिया है। जब मैं कमांड लाइन टूल का उपयोग करके माइग्रेशन निष्पादित करने का प्रयास करता हूं तो यह काम करता प्रतीत होता है लेकिन डेटाबेस में कोई माइग्रेशन लागू नहीं होता है। डेटाबेस स्ट्रिंग सही है क्योंकि यदि संस्करणइन्फो तालिका मौजूद नहीं है तो यह बनाया गया है।
कई माइग्रेशन हैं लेकिन उनमें से अधिकतर बहुत ही सरल हैं।
मैं एसक्यूएल सर्वर 2012 और FluentMigrator 1.2.1 का उपयोग कर रहा: यहाँ पहले एक का एक उदाहरण है।
.\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
और नमूना प्रवास:
यहाँ gunr2171 के लिए पाठ में कमांड लाइन है
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");
}
}
}
क्या संस्करणइंफो तालिका में कोई पिछली माइग्रेशन है? क्या आप विजुअल स्टूडियो में डीबग (और रिलीज़ नहीं) के रूप में माइग्रेशन डीएलएल बना रहे हैं? –
क्या आप कभी इस के नीचे पहुंच गए थे? –