From 978f59ffe8f7fcc710f2d07e47cf725895d6b427 Mon Sep 17 00:00:00 2001 From: Shannon Date: Tue, 12 Feb 2019 10:53:30 +1100 Subject: [PATCH] Removes the xml cache tables - we don't use them apart from in unit tests --- .../Install/DatabaseSchemaCreator.cs | 2 - .../Upgrade/V_8_0_0/DropTaskTables.cs | 1 - .../Upgrade/V_8_0_0/DropXmlTables.cs | 17 +++++++ .../Persistence/Constants-DatabaseSchema.cs | 49 +++++++++---------- .../Implement/DocumentRepository.cs | 2 - .../Implement/MemberRepository.cs | 1 - src/Umbraco.Core/Umbraco.Core.csproj | 3 +- .../LegacyXmlPublishedCache}/ContentXmlDto.cs | 7 +-- .../LegacyXmlPublishedCache}/PreviewXmlDto.cs | 7 +-- .../LegacyXmlPublishedCache/XmlStore.cs | 1 - .../Persistence/SqlCeTableByTableTest.cs | 1 + .../SqlCeSyntaxProviderTests.cs | 1 + .../Services/ContentServiceTests.cs | 1 + .../Services/ContentTypeServiceTests.cs | 1 + .../Services/MediaServiceTests.cs | 1 + .../Services/MemberServiceTests.cs | 1 + .../Services/MemberTypeServiceTests.cs | 1 + .../Services/PerformanceTests.cs | 1 + .../TestHelpers/TestWithDatabaseBase.cs | 7 +++ src/Umbraco.Tests/Umbraco.Tests.csproj | 2 + 20 files changed, 67 insertions(+), 40 deletions(-) create mode 100644 src/Umbraco.Core/Migrations/Upgrade/V_8_0_0/DropXmlTables.cs rename src/{Umbraco.Core/Persistence/Dtos => Umbraco.Tests/LegacyXmlPublishedCache}/ContentXmlDto.cs (81%) rename src/{Umbraco.Core/Persistence/Dtos => Umbraco.Tests/LegacyXmlPublishedCache}/PreviewXmlDto.cs (81%) diff --git a/src/Umbraco.Core/Migrations/Install/DatabaseSchemaCreator.cs b/src/Umbraco.Core/Migrations/Install/DatabaseSchemaCreator.cs index 5cc818a6d2..b33e624576 100644 --- a/src/Umbraco.Core/Migrations/Install/DatabaseSchemaCreator.cs +++ b/src/Umbraco.Core/Migrations/Install/DatabaseSchemaCreator.cs @@ -50,8 +50,6 @@ namespace Umbraco.Core.Migrations.Install typeof (MemberTypeDto), typeof (MemberDto), typeof (Member2MemberGroupDto), - typeof (ContentXmlDto), - typeof (PreviewXmlDto), typeof (PropertyTypeGroupDto), typeof (PropertyTypeDto), typeof (PropertyDataDto), diff --git a/src/Umbraco.Core/Migrations/Upgrade/V_8_0_0/DropTaskTables.cs b/src/Umbraco.Core/Migrations/Upgrade/V_8_0_0/DropTaskTables.cs index 008b3e4b5f..061b96976a 100644 --- a/src/Umbraco.Core/Migrations/Upgrade/V_8_0_0/DropTaskTables.cs +++ b/src/Umbraco.Core/Migrations/Upgrade/V_8_0_0/DropTaskTables.cs @@ -1,6 +1,5 @@ namespace Umbraco.Core.Migrations.Upgrade.V_8_0_0 { - public class DropTaskTables : MigrationBase { public DropTaskTables(IMigrationContext context) diff --git a/src/Umbraco.Core/Migrations/Upgrade/V_8_0_0/DropXmlTables.cs b/src/Umbraco.Core/Migrations/Upgrade/V_8_0_0/DropXmlTables.cs new file mode 100644 index 0000000000..be79178932 --- /dev/null +++ b/src/Umbraco.Core/Migrations/Upgrade/V_8_0_0/DropXmlTables.cs @@ -0,0 +1,17 @@ +namespace Umbraco.Core.Migrations.Upgrade.V_8_0_0 +{ + public class DropXmlTables : MigrationBase + { + public DropXmlTables(IMigrationContext context) + : base(context) + { } + + public override void Migrate() + { + if (TableExists("cmsContentXml")) + Delete.Table("cmsContentXml").Do(); + if (TableExists("cmsPreviewXml")) + Delete.Table("cmsPreviewXml").Do(); + } + } +} \ No newline at end of file diff --git a/src/Umbraco.Core/Persistence/Constants-DatabaseSchema.cs b/src/Umbraco.Core/Persistence/Constants-DatabaseSchema.cs index b874c6e04a..b62a99ce83 100644 --- a/src/Umbraco.Core/Persistence/Constants-DatabaseSchema.cs +++ b/src/Umbraco.Core/Persistence/Constants-DatabaseSchema.cs @@ -5,17 +5,16 @@ namespace Umbraco.Core { public static class DatabaseSchema { + //TODO: Why aren't all table names with the same prefix? public const string TableNamePrefix = "umbraco"; public static class Tables { - public const string Lock = /*TableNamePrefix*/ "umbraco" + "Lock"; - public const string Log = /*TableNamePrefix*/ "umbraco" + "Log"; + public const string Lock = TableNamePrefix + "Lock"; + public const string Log = TableNamePrefix + "Log"; - public const string Node = /*TableNamePrefix*/ "umbraco" + "Node"; + public const string Node = TableNamePrefix + "Node"; public const string NodeData = /*TableNamePrefix*/ "cms" + "ContentNu"; - public const string NodeXml = /*TableNamePrefix*/ "cms" + "ContentXml"; // TODO: get rid of these with the xml cache - public const string NodePreviewXml = /*TableNamePrefix*/ "cms" + "PreviewXml"; // TODO: get rid of these with the xml cache public const string ContentType = /*TableNamePrefix*/ "cms" + "ContentType"; public const string ContentChildType = /*TableNamePrefix*/ "cms" + "ContentTypeAllowedContentType"; @@ -37,22 +36,22 @@ namespace Umbraco.Core public const string PropertyTypeGroup = /*TableNamePrefix*/ "cms" + "PropertyTypeGroup"; public const string PropertyData = TableNamePrefix + "PropertyData"; - public const string RelationType = /*TableNamePrefix*/ "umbraco" + "RelationType"; - public const string Relation = /*TableNamePrefix*/ "umbraco" + "Relation"; + public const string RelationType = TableNamePrefix + "RelationType"; + public const string Relation = TableNamePrefix + "Relation"; - public const string Domain = /*TableNamePrefix*/ "umbraco" + "Domain"; - public const string Language = /*TableNamePrefix*/ "umbraco" + "Language"; + public const string Domain = TableNamePrefix + "Domain"; + public const string Language = TableNamePrefix + "Language"; public const string DictionaryEntry = /*TableNamePrefix*/ "cms" + "Dictionary"; public const string DictionaryValue = /*TableNamePrefix*/ "cms" + "LanguageText"; - public const string User = /*TableNamePrefix*/ "umbraco" + "User"; - public const string UserGroup = /*TableNamePrefix*/ "umbraco" + "UserGroup"; - public const string UserStartNode = /*TableNamePrefix*/ "umbraco" + "UserStartNode"; - public const string User2UserGroup = /*TableNamePrefix*/ "umbraco" + "User2UserGroup"; - public const string User2NodeNotify = /*TableNamePrefix*/ "umbraco" + "User2NodeNotify"; - public const string UserGroup2App = /*TableNamePrefix*/ "umbraco" + "UserGroup2App"; - public const string UserGroup2NodePermission = /*TableNamePrefix*/ "umbraco" + "UserGroup2NodePermission"; - public const string ExternalLogin = /*TableNamePrefix*/ "umbraco" + "ExternalLogin"; + public const string User = TableNamePrefix + "User"; + public const string UserGroup = TableNamePrefix + "UserGroup"; + public const string UserStartNode = TableNamePrefix + "UserStartNode"; + public const string User2UserGroup = TableNamePrefix + "User2UserGroup"; + public const string User2NodeNotify = TableNamePrefix + "User2NodeNotify"; + public const string UserGroup2App = TableNamePrefix + "UserGroup2App"; + public const string UserGroup2NodePermission = TableNamePrefix + "UserGroup2NodePermission"; + public const string ExternalLogin = TableNamePrefix + "ExternalLogin"; public const string Macro = /*TableNamePrefix*/ "cms" + "Macro"; public const string MacroProperty = /*TableNamePrefix*/ "cms" + "MacroProperty"; @@ -61,21 +60,21 @@ namespace Umbraco.Core public const string MemberType = /*TableNamePrefix*/ "cms" + "MemberType"; public const string Member2MemberGroup = /*TableNamePrefix*/ "cms" + "Member2MemberGroup"; - public const string Access = /*TableNamePrefix*/ "umbraco" + "Access"; - public const string AccessRule = /*TableNamePrefix*/ "umbraco" + "AccessRule"; - public const string RedirectUrl = /*TableNamePrefix*/ "umbraco" + "RedirectUrl"; + public const string Access = TableNamePrefix + "Access"; + public const string AccessRule = TableNamePrefix + "AccessRule"; + public const string RedirectUrl = TableNamePrefix + "RedirectUrl"; - public const string CacheInstruction = /*TableNamePrefix*/ "umbraco" + "CacheInstruction"; - public const string Server = /*TableNamePrefix*/ "umbraco" + "Server"; + public const string CacheInstruction = TableNamePrefix + "CacheInstruction"; + public const string Server = TableNamePrefix + "Server"; public const string Tag = /*TableNamePrefix*/ "cms" + "Tags"; public const string TagRelationship = /*TableNamePrefix*/ "cms" + "TagRelationship"; public const string KeyValue = TableNamePrefix + "KeyValue"; - public const string AuditEntry = /*TableNamePrefix*/ "umbraco" + "Audit"; - public const string Consent = /*TableNamePrefix*/ "umbraco" + "Consent"; - public const string UserLogin = /*TableNamePrefix*/ "umbraco" + "UserLogin"; + public const string AuditEntry = TableNamePrefix + "Audit"; + public const string Consent = TableNamePrefix + "Consent"; + public const string UserLogin = TableNamePrefix + "UserLogin"; } } } diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/DocumentRepository.cs b/src/Umbraco.Core/Persistence/Repositories/Implement/DocumentRepository.cs index d8e6fd2c0e..24b50d294b 100644 --- a/src/Umbraco.Core/Persistence/Repositories/Implement/DocumentRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/Implement/DocumentRepository.cs @@ -202,10 +202,8 @@ namespace Umbraco.Core.Persistence.Repositories.Implement "DELETE FROM " + Constants.DatabaseSchema.Tables.DocumentCultureVariation + " WHERE nodeId = @id", "DELETE FROM " + Constants.DatabaseSchema.Tables.DocumentVersion + " WHERE id IN (SELECT id FROM " + Constants.DatabaseSchema.Tables.ContentVersion + " WHERE nodeId = @id)", "DELETE FROM " + Constants.DatabaseSchema.Tables.PropertyData + " WHERE versionId IN (SELECT id FROM " + Constants.DatabaseSchema.Tables.ContentVersion + " WHERE nodeId = @id)", - "DELETE FROM cmsPreviewXml WHERE nodeId = @id", "DELETE FROM " + Constants.DatabaseSchema.Tables.ContentVersionCultureVariation + " WHERE versionId IN (SELECT id FROM " + Constants.DatabaseSchema.Tables.ContentVersion + " WHERE nodeId = @id)", "DELETE FROM " + Constants.DatabaseSchema.Tables.ContentVersion + " WHERE nodeId = @id", - "DELETE FROM cmsContentXml WHERE nodeId = @id", "DELETE FROM " + Constants.DatabaseSchema.Tables.Content + " WHERE nodeId = @id", "DELETE FROM " + Constants.DatabaseSchema.Tables.Access + " WHERE nodeId = @id", "DELETE FROM " + Constants.DatabaseSchema.Tables.Node + " WHERE id = @id" diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/MemberRepository.cs b/src/Umbraco.Core/Persistence/Repositories/Implement/MemberRepository.cs index ba3526f1f0..808f61305a 100644 --- a/src/Umbraco.Core/Persistence/Repositories/Implement/MemberRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/Implement/MemberRepository.cs @@ -188,7 +188,6 @@ namespace Umbraco.Core.Persistence.Repositories.Implement "DELETE FROM cmsMember2MemberGroup WHERE Member = @id", "DELETE FROM cmsMember WHERE nodeId = @id", "DELETE FROM " + Constants.DatabaseSchema.Tables.ContentVersion + " WHERE nodeId = @id", - "DELETE FROM cmsContentXml WHERE nodeId = @id", "DELETE FROM " + Constants.DatabaseSchema.Tables.Content + " WHERE nodeId = @id", "DELETE FROM umbracoNode WHERE id = @id" }; diff --git a/src/Umbraco.Core/Umbraco.Core.csproj b/src/Umbraco.Core/Umbraco.Core.csproj index f5bdc417bd..57aee5ffbf 100755 --- a/src/Umbraco.Core/Umbraco.Core.csproj +++ b/src/Umbraco.Core/Umbraco.Core.csproj @@ -379,6 +379,7 @@ + @@ -826,7 +827,6 @@ - @@ -846,7 +846,6 @@ - diff --git a/src/Umbraco.Core/Persistence/Dtos/ContentXmlDto.cs b/src/Umbraco.Tests/LegacyXmlPublishedCache/ContentXmlDto.cs similarity index 81% rename from src/Umbraco.Core/Persistence/Dtos/ContentXmlDto.cs rename to src/Umbraco.Tests/LegacyXmlPublishedCache/ContentXmlDto.cs index 5929f5cb81..2f2c1e787a 100644 --- a/src/Umbraco.Core/Persistence/Dtos/ContentXmlDto.cs +++ b/src/Umbraco.Tests/LegacyXmlPublishedCache/ContentXmlDto.cs @@ -1,9 +1,10 @@ using NPoco; using Umbraco.Core.Persistence.DatabaseAnnotations; +using Umbraco.Core.Persistence.Dtos; -namespace Umbraco.Core.Persistence.Dtos +namespace Umbraco.Tests.LegacyXmlPublishedCache { - [TableName(Constants.DatabaseSchema.Tables.NodeXml)] + [TableName("cmsContentXml")] [PrimaryKey("nodeId", AutoIncrement = false)] [ExplicitColumns] internal class ContentXmlDto @@ -20,4 +21,4 @@ namespace Umbraco.Core.Persistence.Dtos [Column("rv")] public long Rv { get; set; } } -} +} \ No newline at end of file diff --git a/src/Umbraco.Core/Persistence/Dtos/PreviewXmlDto.cs b/src/Umbraco.Tests/LegacyXmlPublishedCache/PreviewXmlDto.cs similarity index 81% rename from src/Umbraco.Core/Persistence/Dtos/PreviewXmlDto.cs rename to src/Umbraco.Tests/LegacyXmlPublishedCache/PreviewXmlDto.cs index 40cc50b00a..4fcbef820a 100644 --- a/src/Umbraco.Core/Persistence/Dtos/PreviewXmlDto.cs +++ b/src/Umbraco.Tests/LegacyXmlPublishedCache/PreviewXmlDto.cs @@ -1,9 +1,10 @@ using NPoco; using Umbraco.Core.Persistence.DatabaseAnnotations; +using Umbraco.Core.Persistence.Dtos; -namespace Umbraco.Core.Persistence.Dtos +namespace Umbraco.Tests.LegacyXmlPublishedCache { - [TableName(Constants.DatabaseSchema.Tables.NodePreviewXml)] + [TableName("cmsPreviewXml")] [PrimaryKey("nodeId", AutoIncrement = false)] [ExplicitColumns] internal class PreviewXmlDto @@ -20,4 +21,4 @@ namespace Umbraco.Core.Persistence.Dtos [Column("rv")] public long Rv { get; set; } } -} +} \ No newline at end of file diff --git a/src/Umbraco.Tests/LegacyXmlPublishedCache/XmlStore.cs b/src/Umbraco.Tests/LegacyXmlPublishedCache/XmlStore.cs index 6dec9f2448..3b675c2f07 100644 --- a/src/Umbraco.Tests/LegacyXmlPublishedCache/XmlStore.cs +++ b/src/Umbraco.Tests/LegacyXmlPublishedCache/XmlStore.cs @@ -12,7 +12,6 @@ using Umbraco.Core.IO; using Umbraco.Core.Logging; using Umbraco.Core.Models; using Umbraco.Core.Persistence; -using Umbraco.Core.Persistence.Dtos; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.Repositories.Implement; using Umbraco.Core.Scoping; diff --git a/src/Umbraco.Tests/Persistence/SqlCeTableByTableTest.cs b/src/Umbraco.Tests/Persistence/SqlCeTableByTableTest.cs index 38daa2c1a7..dcbf5919eb 100644 --- a/src/Umbraco.Tests/Persistence/SqlCeTableByTableTest.cs +++ b/src/Umbraco.Tests/Persistence/SqlCeTableByTableTest.cs @@ -5,6 +5,7 @@ using Umbraco.Core.Logging; using Umbraco.Core.Migrations.Install; using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.Dtos; +using Umbraco.Tests.LegacyXmlPublishedCache; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.Testing; diff --git a/src/Umbraco.Tests/Persistence/SyntaxProvider/SqlCeSyntaxProviderTests.cs b/src/Umbraco.Tests/Persistence/SyntaxProvider/SqlCeSyntaxProviderTests.cs index 557de9eb11..1d87bb35e7 100644 --- a/src/Umbraco.Tests/Persistence/SyntaxProvider/SqlCeSyntaxProviderTests.cs +++ b/src/Umbraco.Tests/Persistence/SyntaxProvider/SqlCeSyntaxProviderTests.cs @@ -14,6 +14,7 @@ using Umbraco.Core.Persistence.DatabaseModelDefinitions; using Umbraco.Core.Persistence.Dtos; using Umbraco.Core.Persistence.SqlSyntax; using Umbraco.Core.Scoping; +using Umbraco.Tests.LegacyXmlPublishedCache; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.Testing; diff --git a/src/Umbraco.Tests/Services/ContentServiceTests.cs b/src/Umbraco.Tests/Services/ContentServiceTests.cs index 85c195e553..bcbf01d3f0 100644 --- a/src/Umbraco.Tests/Services/ContentServiceTests.cs +++ b/src/Umbraco.Tests/Services/ContentServiceTests.cs @@ -18,6 +18,7 @@ using Umbraco.Core.Services.Implement; using Umbraco.Tests.Testing; using Umbraco.Core.Persistence.DatabaseModelDefinitions; using Umbraco.Core.Cache; +using Umbraco.Tests.LegacyXmlPublishedCache; namespace Umbraco.Tests.Services { diff --git a/src/Umbraco.Tests/Services/ContentTypeServiceTests.cs b/src/Umbraco.Tests/Services/ContentTypeServiceTests.cs index 7a7aad6905..341371ca02 100644 --- a/src/Umbraco.Tests/Services/ContentTypeServiceTests.cs +++ b/src/Umbraco.Tests/Services/ContentTypeServiceTests.cs @@ -10,6 +10,7 @@ using Umbraco.Core.Models; using Umbraco.Core.Persistence.Dtos; using Umbraco.Core.Services; using Umbraco.Core.Services.Implement; +using Umbraco.Tests.LegacyXmlPublishedCache; using Umbraco.Tests.TestHelpers.Entities; using Umbraco.Tests.Testing; using Umbraco.Tests.Scoping; diff --git a/src/Umbraco.Tests/Services/MediaServiceTests.cs b/src/Umbraco.Tests/Services/MediaServiceTests.cs index b9e1fee0db..17711fbd31 100644 --- a/src/Umbraco.Tests/Services/MediaServiceTests.cs +++ b/src/Umbraco.Tests/Services/MediaServiceTests.cs @@ -14,6 +14,7 @@ using Umbraco.Core.Persistence.Dtos; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Services; using Umbraco.Core.Services.Implement; +using Umbraco.Tests.LegacyXmlPublishedCache; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.TestHelpers.Entities; using Umbraco.Tests.Testing; diff --git a/src/Umbraco.Tests/Services/MemberServiceTests.cs b/src/Umbraco.Tests/Services/MemberServiceTests.cs index 0c9c543b0d..98553941cd 100644 --- a/src/Umbraco.Tests/Services/MemberServiceTests.cs +++ b/src/Umbraco.Tests/Services/MemberServiceTests.cs @@ -17,6 +17,7 @@ using Umbraco.Core.Persistence.Dtos; using Umbraco.Core.Persistence.Querying; using Umbraco.Core.Services; using Umbraco.Core.Services.Implement; +using Umbraco.Tests.LegacyXmlPublishedCache; using Umbraco.Tests.TestHelpers.Entities; using Umbraco.Tests.Testing; using Umbraco.Web.Security.Providers; diff --git a/src/Umbraco.Tests/Services/MemberTypeServiceTests.cs b/src/Umbraco.Tests/Services/MemberTypeServiceTests.cs index 5f4a87c3eb..24709469e9 100644 --- a/src/Umbraco.Tests/Services/MemberTypeServiceTests.cs +++ b/src/Umbraco.Tests/Services/MemberTypeServiceTests.cs @@ -5,6 +5,7 @@ using NUnit.Framework; using Umbraco.Core; using Umbraco.Core.Models; using Umbraco.Core.Persistence.Dtos; +using Umbraco.Tests.LegacyXmlPublishedCache; using Umbraco.Tests.TestHelpers.Entities; using Umbraco.Tests.Testing; diff --git a/src/Umbraco.Tests/Services/PerformanceTests.cs b/src/Umbraco.Tests/Services/PerformanceTests.cs index 7d73d95e74..449e933c24 100644 --- a/src/Umbraco.Tests/Services/PerformanceTests.cs +++ b/src/Umbraco.Tests/Services/PerformanceTests.cs @@ -13,6 +13,7 @@ using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.Dtos; using Umbraco.Core.Services; using Umbraco.Core.Services.Implement; +using Umbraco.Tests.LegacyXmlPublishedCache; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.TestHelpers.Entities; using Umbraco.Tests.TestHelpers.Stubs; diff --git a/src/Umbraco.Tests/TestHelpers/TestWithDatabaseBase.cs b/src/Umbraco.Tests/TestHelpers/TestWithDatabaseBase.cs index 2bfc1b6dc8..643deab304 100644 --- a/src/Umbraco.Tests/TestHelpers/TestWithDatabaseBase.cs +++ b/src/Umbraco.Tests/TestHelpers/TestWithDatabaseBase.cs @@ -307,6 +307,13 @@ namespace Umbraco.Tests.TestHelpers var schemaHelper = new DatabaseSchemaCreator(scope.Database, Logger); //Create the umbraco database and its base data schemaHelper.InitializeDatabaseSchema(); + + //Special case, we need to create the xml cache tables manually since they are not part of the default + //setup. + //TODO: Remove this when we update all tests to use nucache + schemaHelper.CreateTable(); + schemaHelper.CreateTable(); + scope.Complete(); } diff --git a/src/Umbraco.Tests/Umbraco.Tests.csproj b/src/Umbraco.Tests/Umbraco.Tests.csproj index e0ad304c4f..5aa1588ef2 100644 --- a/src/Umbraco.Tests/Umbraco.Tests.csproj +++ b/src/Umbraco.Tests/Umbraco.Tests.csproj @@ -126,6 +126,8 @@ + +