From d8909fe09cefa91e43f30e613d2e8bd3ce782444 Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Thu, 27 Nov 2014 14:11:18 +0100 Subject: [PATCH] Also adds migration for U4-5837 --- .../AddIndexToUmbracoNodeTable.cs | 45 +++++++++++++++++++ src/Umbraco.Core/Umbraco.Core.csproj | 1 + 2 files changed, 46 insertions(+) create mode 100644 src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenTwoZero/AddIndexToUmbracoNodeTable.cs diff --git a/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenTwoZero/AddIndexToUmbracoNodeTable.cs b/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenTwoZero/AddIndexToUmbracoNodeTable.cs new file mode 100644 index 0000000000..8260a13e6b --- /dev/null +++ b/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenTwoZero/AddIndexToUmbracoNodeTable.cs @@ -0,0 +1,45 @@ +using System.Linq; +using Umbraco.Core.Configuration; +using Umbraco.Core.Persistence.DatabaseModelDefinitions; +using Umbraco.Core.Persistence.SqlSyntax; + +namespace Umbraco.Core.Persistence.Migrations.Upgrades.TargetVersionSevenTwoZero +{ + [Migration("7.2.0", 3, GlobalSettings.UmbracoMigrationName)] + public class AddIndexToUmbracoNodeTable : MigrationBase + { + private readonly bool _skipIndexCheck; + + internal AddIndexToUmbracoNodeTable(bool skipIndexCheck) + { + _skipIndexCheck = skipIndexCheck; + } + + public AddIndexToUmbracoNodeTable() + { + } + + public override void Up() + { + var dbIndexes = _skipIndexCheck ? new DbIndexDefinition[] { } : SqlSyntaxContext.SqlSyntaxProvider.GetDefinedIndexes(Context.Database) + .Select(x => new DbIndexDefinition + { + TableName = x.Item1, + IndexName = x.Item2, + ColumnName = x.Item3, + IsUnique = x.Item4 + }).ToArray(); + + //make sure it doesn't already exist + if (dbIndexes.Any(x => x.IndexName.InvariantEquals("IX_umbracoNodeUniqueID")) == false) + { + Create.Index("IX_umbracoNodeUniqueID").OnTable("umbracoNode").OnColumn("uniqueID").Unique(); + } + } + + public override void Down() + { + Delete.Index("IX_umbracoNodeUniqueID").OnTable("umbracoNode"); + } + } +} \ No newline at end of file diff --git a/src/Umbraco.Core/Umbraco.Core.csproj b/src/Umbraco.Core/Umbraco.Core.csproj index 49d04a33b3..da47e24a80 100644 --- a/src/Umbraco.Core/Umbraco.Core.csproj +++ b/src/Umbraco.Core/Umbraco.Core.csproj @@ -393,6 +393,7 @@ +