From 38e8e1cf9cced7dd4e9c5a35c4ebc43b16378810 Mon Sep 17 00:00:00 2001 From: Stephan Date: Tue, 20 Dec 2016 15:25:35 +0100 Subject: [PATCH] U4-9250 - fix migration --- .../AddMacroUniqueIdColumn.cs | 6 +- .../Migrations/AlterMigrationTests.cs | 59 ++++++++++++++++++- 2 files changed, 61 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenSixZero/AddMacroUniqueIdColumn.cs b/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenSixZero/AddMacroUniqueIdColumn.cs index 3fc7d718e4..32941fddf8 100644 --- a/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenSixZero/AddMacroUniqueIdColumn.cs +++ b/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenSixZero/AddMacroUniqueIdColumn.cs @@ -9,7 +9,7 @@ namespace Umbraco.Core.Persistence.Migrations.Upgrades.TargetVersionSevenSixZero [Migration("7.6.0", 0, GlobalSettings.UmbracoMigrationName)] public class AddMacroUniqueIdColumn : MigrationBase { - public AddMacroUniqueIdColumn(ISqlSyntaxProvider sqlSyntax, ILogger logger) + public AddMacroUniqueIdColumn(ISqlSyntaxProvider sqlSyntax, ILogger logger) : base(sqlSyntax, logger) { } @@ -21,7 +21,7 @@ namespace Umbraco.Core.Persistence.Migrations.Upgrades.TargetVersionSevenSixZero { Create.Column("uniqueId").OnTable("cmsMacro").AsGuid().Nullable(); Execute.Code(UpdateMacroGuids); - Alter.Column("uniqueId").OnTable("cmsMacro").AsGuid().NotNullable(); + Alter.Table("cmsMacro").AlterColumn("uniqueId").AsGuid().NotNullable(); Create.Index("IX_cmsMacroUniqueId").OnTable("cmsMacro").OnColumn("uniqueId") .Ascending() .WithOptions().NonClustered() @@ -33,7 +33,7 @@ namespace Umbraco.Core.Persistence.Migrations.Upgrades.TargetVersionSevenSixZero { Create.Column("uniqueId").OnTable("cmsMacroProperty").AsGuid().Nullable(); Execute.Code(UpdateMacroPropertyGuids); - Alter.Column("uniqueId").OnTable("cmsMacroProperty").AsGuid().NotNullable(); + Alter.Table("cmsMacroProperty").AlterColumn("uniqueId").AsGuid().NotNullable(); Create.Index("IX_cmsMacroPropertyUniqueId").OnTable("cmsMacroProperty").OnColumn("uniqueId") .Ascending() .WithOptions().NonClustered() diff --git a/src/Umbraco.Tests/Migrations/AlterMigrationTests.cs b/src/Umbraco.Tests/Migrations/AlterMigrationTests.cs index 4e38f427e5..db9fc15ac2 100644 --- a/src/Umbraco.Tests/Migrations/AlterMigrationTests.cs +++ b/src/Umbraco.Tests/Migrations/AlterMigrationTests.cs @@ -14,7 +14,6 @@ namespace Umbraco.Tests.Migrations [TestFixture] public class AlterMigrationTests { - [Test] public void Drop_Foreign_Key() { @@ -31,6 +30,64 @@ namespace Umbraco.Tests.Migrations } + [Test] + public void CreateColumn() + { + var context = new MigrationContext(DatabaseProviders.SqlServerCE, null, Mock.Of()); + var migration = new CreateColumnMigration(new SqlCeSyntaxProvider(), Mock.Of()); + + migration.GetUpExpressions(context); + + Assert.That(context.Expressions.Count, Is.EqualTo(1)); + Assert.That(context.Expressions.Single().ToString(), Is.EqualTo("ALTER TABLE [bar] ADD [foo] UniqueIdentifier NOT NULL")); + } + + [Migration("1.0.0", 0, "Test")] + public class CreateColumnMigration : MigrationBase + { + public CreateColumnMigration(ISqlSyntaxProvider sqlSyntax, ILogger logger) + : base(sqlSyntax, logger) + { } + + public override void Up() + { + Alter.Table("bar").AddColumn("foo").AsGuid(); + } + + public override void Down() + { } + } + + [Test] + public void AlterColumn() + { + var context = new MigrationContext(DatabaseProviders.SqlServerCE, null, Mock.Of()); + var migration = new AlterColumnMigration(new SqlCeSyntaxProvider(), Mock.Of()); + + migration.GetUpExpressions(context); + + Assert.That(context.Expressions.Count, Is.EqualTo(1)); + Assert.That(context.Expressions.Single().ToString(), Is.EqualTo("ALTER TABLE [bar] ALTER COLUMN [foo] UniqueIdentifier NOT NULL")); + } + + [Migration("1.0.0", 0, "Test")] + public class AlterColumnMigration : MigrationBase + { + public AlterColumnMigration(ISqlSyntaxProvider sqlSyntax, ILogger logger) + : base(sqlSyntax, logger) + { } + + public override void Up() + { + // bad/good syntax... + //Alter.Column("foo").OnTable("bar").AsGuid().NotNullable(); + Alter.Table("bar").AlterColumn("foo").AsGuid().NotNullable(); + } + + public override void Down() + { } + } + [NUnit.Framework.Ignore("this doesn't actually test anything")] [Test] public void Can_Get_Up_Migration_From_MigrationStub()