2
我試圖使用Fluent Migrator創建一個唯一的列。但是,如果我嘗試與列定義一起定義了唯一約束它不工作,例如像:在Fluent Migrator中定義唯一的約束條件
[Migration(20120404190455)]
public class Migration1 : Migration
{
public override void Up()
{
Create.Table("Test")
.WithColumn("Name").AsString(64).Unique();
}
public override void Down()
{
Delete.Table("Test");
}
}
我執行這樣的遷移:
<sourcedir>\packages\FluentMigrator.Tools.1.0.1.0\tools\AnyCPU\40\Migrate.exe -a build\TheMigrationDLL.dll --db sqlserver2008 -conn "DQLEXPRESS;Initial Catalog=DBNAME;Trusted_Connection=True;" --verbose=true
輸出:
connection is null!
connection is null!
Using Database sqlserver2008 and Connection String Data Source=.\SQLEXPRESS;Initial Catalog=DBNAME;Trusted_Connection=True;
-- VersionMigration: migrating ===============================================
-- CreateTable VersionInfo
CREATE TABLE [dbo].[VersionInfo] ([Version] BIGINT NOT NULL)
-- -> 0,0170009s
-- VersionMigration: migrated
-- -> 0,0190011s
-- Migration1: migrating =====================================================
-- CreateTable Test
CREATE TABLE [dbo].[Test] ([Name] NVARCHAR(64) NOT NULL)
-- -> 0,0020002s
-- Migration1: migrated
-- -> 0,0030002s
INSERT INTO [dbo].[VersionInfo] ([Version]) VALUES (20120404190455)
-- Committing Transaction
顯然沒有創建唯一索引。但是,如果我創建一個單獨調用索引:
Create.Index().OnTable("Test")
.OnColumn("Name").Ascending()
.WithOptions().Unique();
輸出:
....
-- CreateIndex Test (Name)
CREATE UNIQUE INDEX [IX_Test_Name] ON [dbo].[Test] ([Name] ASC)
....
我發現在GitHub上對此(如#49和#83)的幾個問題,但他們均已關閉參考this pull。
我不知道我是否使用了錯誤的版本。我使用NuGet提供的版本1.0.1.0。
我很欣賞提示,我在做什麼錯在這裏。提前致謝!
問候, 安德烈