Question

I'm trying to create a unique column using Fluent Migrator. However, it doesn't work if I try to define the unique constraint together with the column definition, like e.g.:

[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");
    }
}

I execute the migration like this:

<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

Output:

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

Obviously no unique index is created. However, if I create the index in a stand-alone call:

Create.Index().OnTable("Test")
    .OnColumn("Name").Ascending()
    .WithOptions().Unique();

Output:

....
-- CreateIndex Test (Name)
CREATE UNIQUE INDEX [IX_Test_Name] ON [dbo].[Test] ([Name] ASC)
....

I found several issues on github regarding this (e.g. #49 and #83) but they have been closed with reference to this pull.

I wonder if I'm using the wrong version. I'm using version 1.0.1.0 as available from NuGet.

I'd appreciate hints on what I'm doing wrong here. Thanks in advance!

Regards, Andre

Was it helpful?

Solution

FluentMigrator 1.0.2.0 solves this particular problem, please update your package.

FluentMigrator 1.0.1.0 was released september 2011, as of yesterday we are back on track with releasing.

Remember if you have a .NET 4 migration assembly to get the fluentmigrator.tools package as well, so you have the right version of the Migrate.exe version.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top