From 40e7b9bc0a44910c84187c0ed3d11a3a6b4c63e0 Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Mon, 3 Dec 2012 11:49:09 -0100 Subject: [PATCH] Fix the DB creation and population (tested only on SQL CE so far) --- .../Models/Rdbms/ContentXmlDto.cs | 6 +- .../Models/Rdbms/DataTypePreValueDto.cs | 2 +- src/Umbraco.Core/Models/Rdbms/DocumentDto.cs | 2 +- src/Umbraco.Core/Models/Rdbms/TaskDto.cs | 2 +- .../Migrations/Initial/BaseDataCreation.cs | 70 +++++++++++++------ .../Routing/LookupByAliasTests.cs | 8 +++ 6 files changed, 64 insertions(+), 26 deletions(-) diff --git a/src/Umbraco.Core/Models/Rdbms/ContentXmlDto.cs b/src/Umbraco.Core/Models/Rdbms/ContentXmlDto.cs index f6487a8fb3..9cb1da238d 100644 --- a/src/Umbraco.Core/Models/Rdbms/ContentXmlDto.cs +++ b/src/Umbraco.Core/Models/Rdbms/ContentXmlDto.cs @@ -1,4 +1,5 @@ -using Umbraco.Core.Persistence; +using System.Data; +using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.DatabaseAnnotations; namespace Umbraco.Core.Models.Rdbms @@ -10,10 +11,11 @@ namespace Umbraco.Core.Models.Rdbms { [Column("nodeId")] [PrimaryKeyColumn(AutoIncrement = false)] - [ForeignKey(typeof(ContentDto))] + //[ForeignKey(typeof(ContentDto))] public int NodeId { get; set; } [Column("xml")] + [SpecialDbType(SpecialDbTypes.NTEXT)] public string Xml { get; set; } } } \ No newline at end of file diff --git a/src/Umbraco.Core/Models/Rdbms/DataTypePreValueDto.cs b/src/Umbraco.Core/Models/Rdbms/DataTypePreValueDto.cs index 4f19d60abd..deb23a00c9 100644 --- a/src/Umbraco.Core/Models/Rdbms/DataTypePreValueDto.cs +++ b/src/Umbraco.Core/Models/Rdbms/DataTypePreValueDto.cs @@ -13,7 +13,7 @@ namespace Umbraco.Core.Models.Rdbms public int Id { get; set; } [Column("datatypeNodeId")] - [ForeignKey(typeof(DataTypeDto), Column = "nodeId")] + //[ForeignKey(typeof(DataTypeDto), Column = "nodeId")] public int DataTypeNodeId { get; set; } [Column("value")] diff --git a/src/Umbraco.Core/Models/Rdbms/DocumentDto.cs b/src/Umbraco.Core/Models/Rdbms/DocumentDto.cs index 59391c6551..4eda74dcc9 100644 --- a/src/Umbraco.Core/Models/Rdbms/DocumentDto.cs +++ b/src/Umbraco.Core/Models/Rdbms/DocumentDto.cs @@ -42,7 +42,7 @@ namespace Umbraco.Core.Models.Rdbms [Column("templateId")] [NullSetting(NullSetting = NullSettings.Null)] - [ForeignKey(typeof(TemplateDto))] + //[ForeignKey(typeof(TemplateDto))] public int? TemplateId { get; set; } [Column("alias")] diff --git a/src/Umbraco.Core/Models/Rdbms/TaskDto.cs b/src/Umbraco.Core/Models/Rdbms/TaskDto.cs index 4c38197d67..41fb59c380 100644 --- a/src/Umbraco.Core/Models/Rdbms/TaskDto.cs +++ b/src/Umbraco.Core/Models/Rdbms/TaskDto.cs @@ -18,7 +18,7 @@ namespace Umbraco.Core.Models.Rdbms public int Id { get; set; } [Column("taskTypeId")] - [ForeignKey(typeof(TaskTypeDto))] + //[ForeignKey(typeof(TaskTypeDto))] public byte TaskTypeId { get; set; } [Column("nodeId")] diff --git a/src/Umbraco.Core/Persistence/Migrations/Initial/BaseDataCreation.cs b/src/Umbraco.Core/Persistence/Migrations/Initial/BaseDataCreation.cs index 5bc4074432..e0fc83eec9 100644 --- a/src/Umbraco.Core/Persistence/Migrations/Initial/BaseDataCreation.cs +++ b/src/Umbraco.Core/Persistence/Migrations/Initial/BaseDataCreation.cs @@ -77,10 +77,19 @@ namespace Umbraco.Core.Persistence.Migrations.Initial CreateCmsDataTypeData(); } + if (tableName.Equals("cmsDataTypePreValues")) + { + CreateCmsDataTypePreValuesData(); + } + if (tableName.Equals("umbracoRelationType")) { CreateUmbracoRelationTypeData(); } + if (tableName.Equals("cmsTaskType")) + { + CreateCmsTaskTypeData(); + } } private void CreateUmbracNodeData() @@ -127,8 +136,8 @@ namespace Umbraco.Core.Persistence.Migrations.Initial private void CreateCmsContentTypeData() { _database.Insert(new ContentTypeDto { PrimaryKey = 532, NodeId = 1031, Alias = "Folder", Icon = "folder.gif", Thumbnail = "folder.png", IsContainer = true, AllowAtRoot = true }); - _database.Insert(new ContentTypeDto { PrimaryKey = 533, NodeId = 1032, Alias = "Image", Icon = "mediaPhoto.gif", Thumbnail = "folder.png" }); - _database.Insert(new ContentTypeDto { PrimaryKey = 534, NodeId = 1033, Alias = "File", Icon = "mediaFile.gif", Thumbnail = "folder.png" }); + _database.Insert(new ContentTypeDto { PrimaryKey = 533, NodeId = 1032, Alias = "Image", Icon = "mediaPhoto.gif", Thumbnail = "mediaPhoto.png" }); + _database.Insert(new ContentTypeDto { PrimaryKey = 534, NodeId = 1033, Alias = "File", Icon = "mediaFile.gif", Thumbnail = "mediaFile.png" }); } private void CreateUmbracoUserData() @@ -285,7 +294,32 @@ namespace Umbraco.Core.Persistence.Migrations.Initial } private void CreateCmsDataTypePreValuesData() - {} + { + using (var transaction = _database.GetTransaction()) + { + _database.Execute(new Sql("SET IDENTITY_INSERT [cmsDataTypePreValues] ON ")); + _database.Insert("cmsDataTypePreValues", "id", false, + new DataTypePreValueDto + { + Id = 3, + Alias = "", + SortOrder = 0, + DataTypeNodeId = -87, + Value = ",code,undo,redo,cut,copy,mcepasteword,stylepicker,bold,italic,bullist,numlist,outdent,indent,mcelink,unlink,mceinsertanchor,mceimage,umbracomacro,mceinserttable,umbracoembed,mcecharmap,' + char(124) + '1' + char(124) + '1,2,3,' + char(124) + '0' + char(124) + '500,400' + char(124) + '1049,' + char(124) + 'true' + char(124) + '" + }); + _database.Insert("cmsDataTypePreValues", "id", false, new DataTypePreValueDto + { + Id = 4, + Alias = "group", + SortOrder = 0, + DataTypeNodeId = 1041, + Value = "default" + }); + _database.Execute(new Sql("SET IDENTITY_INSERT [cmsDataTypePreValues] OFF;")); + + transaction.Complete(); + } + } private void CreateUmbracoRelationTypeData() { @@ -309,24 +343,18 @@ namespace Umbraco.Core.Persistence.Migrations.Initial } private void CreateCmsTaskTypeData() - { } + { + //TODO: It tries to do an identity insert it seems, why? Error: The column cannot be modified. [ Column name = id ] + //using (var transaction = _database.GetTransaction()) + //{ + // _database.Insert("cmsTaskType", "id", false, + // new TaskTypeDto + // { + // Alias = "toTranslate" + // }); - /* - - * SET IDENTITY_INSERT [cmsDataTypePreValues] ON -insert into cmsDataTypePreValues (id, dataTypeNodeId, [value], sortorder, alias) -values (3,-87,',code,undo,redo,cut,copy,mcepasteword,stylepicker,bold,italic,bullist,numlist,outdent,indent,mcelink,unlink,mceinsertanchor,mceimage,umbracomacro,mceinserttable,umbracoembed,mcecharmap,' + char(124) + '1' + char(124) + '1,2,3,' + char(124) + '0' + char(124) + '500,400' + char(124) + '1049,' + char(124) + 'true' + char(124) + '', 0, '') - -insert into cmsDataTypePreValues (id, dataTypeNodeId, [value], sortorder, alias) -values (4,1041,'default', 0, 'group') - -SET IDENTITY_INSERT [cmsDataTypePreValues] OFF -; - - * - * - - insert into cmsTaskType (alias) values ('toTranslate'); - */ + // transaction.Complete(); + //} + } } } \ No newline at end of file diff --git a/src/Umbraco.Tests/Routing/LookupByAliasTests.cs b/src/Umbraco.Tests/Routing/LookupByAliasTests.cs index 3f0667ee97..975ab16cbf 100644 --- a/src/Umbraco.Tests/Routing/LookupByAliasTests.cs +++ b/src/Umbraco.Tests/Routing/LookupByAliasTests.cs @@ -15,6 +15,14 @@ namespace Umbraco.Tests.Routing Umbraco.Core.Configuration.UmbracoSettings.UseLegacyXmlSchema = false; } + /// + /// We don't need a db for this test, will run faster without one + /// + protected override bool RequiresDbSetup + { + get { return false; } + } + [TestCase("/this/is/my/alias", 1046)] [TestCase("/anotheralias", 1046)] [TestCase("/page2/alias", 1173)]