diff --git a/app/Umbraco/DatabaseSizer.cs/Application.cs b/app/Umbraco/DatabaseSizer.cs/Application.cs new file mode 100644 index 0000000..0824ba5 --- /dev/null +++ b/app/Umbraco/DatabaseSizer.cs/Application.cs @@ -0,0 +1,49 @@ +using System; +using Umbraco.Core; +using Umbraco.Core.Logging; + +namespace DatabaseSizer +{ + public class Application : ApplicationEventHandler + { + protected override void ApplicationStarted(UmbracoApplicationBase umbracoApplication, ApplicationContext applicationContext) + { + base.ApplicationStarted(umbracoApplication, applicationContext); + + ExpandPrevalueValueColumnSize(); + } + + protected void ExpandPrevalueValueColumnSize() + { + try + { + var dbContext = ApplicationContext.Current.DatabaseContext; + var colCount = + dbContext.Database.ExecuteScalar( + "SELECT COUNT(1) FROM INFORMATION_SCHEMA.COLUMNS WHERE DATA_TYPE = 'nvarchar' AND COLUMN_NAME = 'value' AND CHARACTER_MAXIMUM_LENGTH = 2500 AND TABLE_NAME = 'cmsDataTypePreValues'"); + + // Check column + if (colCount != 0) + { + using (var trans = dbContext.Database.GetTransaction()) + { + // Change column + dbContext.Database.Execute("ALTER TABLE [cmsDataTypePreValues] ALTER COLUMN [value] ntext NULL;"); + + trans.Complete(); + } + + LogHelper.Debug(typeof(Application), "Successfully expanded Prevalue table Value column"); + } + else + { + LogHelper.Debug(typeof(Application), "Prevalue table Value column is already expanded"); + } + } + catch (Exception ex) + { + LogHelper.Error(typeof(Application), "Error expanding Prevalue table Value column", ex); + } + } + } +} \ No newline at end of file diff --git a/app/Umbraco/DatabaseSizer.cs/DatabaseSizer.csproj b/app/Umbraco/DatabaseSizer.cs/DatabaseSizer.csproj new file mode 100644 index 0000000..60c92b8 --- /dev/null +++ b/app/Umbraco/DatabaseSizer.cs/DatabaseSizer.csproj @@ -0,0 +1,213 @@ + + + + + Debug + AnyCPU + {0114C963-C514-49C1-B7AB-DCB1825F498C} + Library + Properties + DatabaseSizer + DatabaseSizer + v4.5 + 512 + ..\ + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\packages\AutoMapper.3.0.0\lib\net40\AutoMapper.dll + + + ..\packages\AutoMapper.3.0.0\lib\net40\AutoMapper.Net4.dll + + + ..\packages\UmbracoCms.Core.7.1.2\lib\businesslogic.dll + + + ..\packages\ClientDependency.1.7.1.2\lib\ClientDependency.Core.dll + + + ..\packages\ClientDependency-Mvc.1.7.0.4\lib\ClientDependency.Core.Mvc.dll + + + ..\packages\UmbracoCms.Core.7.1.2\lib\cms.dll + + + ..\packages\UmbracoCms.Core.7.1.2\lib\controls.dll + + + ..\packages\xmlrpcnet.2.5.0\lib\net20\CookComputing.XmlRpcV2.dll + + + ..\packages\UmbracoCms.Core.7.1.2\lib\Examine.dll + + + ..\packages\HtmlAgilityPack.1.4.6\lib\Net45\HtmlAgilityPack.dll + + + ..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll + + + ..\packages\ImageProcessor.1.9.0.0\lib\ImageProcessor.dll + + + ..\packages\ImageProcessor.Web.3.2.3.0\lib\net45\ImageProcessor.Web.dll + + + ..\packages\UmbracoCms.Core.7.1.2\lib\interfaces.dll + + + ..\packages\UmbracoCms.Core.7.1.2\lib\log4net.dll + + + ..\packages\Lucene.Net.2.9.4.1\lib\net40\Lucene.Net.dll + + + ..\packages\UmbracoCms.Core.7.1.2\lib\Microsoft.ApplicationBlocks.Data.dll + + + ..\packages\UmbracoCms.Core.7.1.2\lib\Microsoft.Web.Helpers.dll + + + True + ..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll + + + ..\packages\Microsoft.AspNet.Mvc.FixedDisplayModes.1.0.0\lib\net40\Microsoft.Web.Mvc.FixedDisplayModes.dll + + + ..\packages\MiniProfiler.2.1.0\lib\net40\MiniProfiler.dll + + + ..\packages\MySql.Data.6.6.5\lib\net40\MySql.Data.dll + + + ..\packages\Newtonsoft.Json.6.0.2\lib\net45\Newtonsoft.Json.dll + + + ..\packages\UmbracoCms.Core.7.1.2\lib\SQLCE4Umbraco.dll + + + + + True + ..\packages\UmbracoCms.Core.7.1.2\lib\System.Data.SqlServerCe.dll + + + True + ..\packages\UmbracoCms.Core.7.1.2\lib\System.Data.SqlServerCe.Entity.dll + + + ..\packages\Microsoft.AspNet.WebApi.Client.4.0.30506.0\lib\net40\System.Net.Http.Formatting.dll + + + + True + ..\packages\Microsoft.AspNet.WebPages.2.0.20710.0\lib\net40\System.Web.Helpers.dll + + + ..\packages\Microsoft.AspNet.WebApi.Core.4.0.20710.0\lib\net40\System.Web.Http.dll + + + ..\packages\Microsoft.AspNet.WebApi.WebHost.4.0.20710.0\lib\net40\System.Web.Http.WebHost.dll + + + True + ..\packages\Microsoft.AspNet.Mvc.4.0.20710.0\lib\net40\System.Web.Mvc.dll + + + True + ..\packages\Microsoft.AspNet.Razor.2.0.20710.0\lib\net40\System.Web.Razor.dll + + + True + ..\packages\Microsoft.AspNet.WebPages.2.0.20710.0\lib\net40\System.Web.WebPages.dll + + + True + ..\packages\Microsoft.AspNet.WebPages.2.0.20710.0\lib\net40\System.Web.WebPages.Deployment.dll + + + True + ..\packages\Microsoft.AspNet.WebPages.2.0.20710.0\lib\net40\System.Web.WebPages.Razor.dll + + + + + + + + ..\packages\UmbracoCms.Core.7.1.2\lib\TidyNet.dll + + + ..\packages\UmbracoCms.Core.7.1.2\lib\umbraco.dll + + + ..\packages\UmbracoCms.Core.7.1.2\lib\Umbraco.Core.dll + + + ..\packages\UmbracoCms.Core.7.1.2\lib\umbraco.DataLayer.dll + + + ..\packages\UmbracoCms.Core.7.1.2\lib\umbraco.editorControls.dll + + + ..\packages\UmbracoCms.Core.7.1.2\lib\umbraco.MacroEngines.dll + + + ..\packages\UmbracoCms.Core.7.1.2\lib\umbraco.providers.dll + + + ..\packages\UmbracoCms.Core.7.1.2\lib\Umbraco.Web.UI.dll + + + ..\packages\UmbracoCms.Core.7.1.2\lib\umbraco.XmlSerializers.dll + + + ..\packages\UmbracoCms.Core.7.1.2\lib\UmbracoExamine.dll + + + ..\packages\UmbracoCms.Core.7.1.2\lib\UrlRewritingNet.UrlRewriter.dll + + + + + + + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + \ No newline at end of file diff --git a/app/Umbraco/DatabaseSizer.cs/Properties/AssemblyInfo.cs b/app/Umbraco/DatabaseSizer.cs/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..46a4e6f --- /dev/null +++ b/app/Umbraco/DatabaseSizer.cs/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("DatabaseSizer.cs")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("DatabaseSizer.cs")] +[assembly: AssemblyCopyright("Copyright © 2014")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("28dc35d2-3dfb-40b4-9093-bc47c91127ea")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/app/Umbraco/DatabaseSizer.cs/packages.config b/app/Umbraco/DatabaseSizer.cs/packages.config new file mode 100644 index 0000000..3fc6851 --- /dev/null +++ b/app/Umbraco/DatabaseSizer.cs/packages.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/Umbraco/Umbraco.Archetype.sln b/app/Umbraco/Umbraco.Archetype.sln index 88272ac..c400f99 100644 --- a/app/Umbraco/Umbraco.Archetype.sln +++ b/app/Umbraco/Umbraco.Archetype.sln @@ -12,6 +12,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{D84AA4 EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Archetype.Tests", "Archetype.Tests\Archetype.Tests.csproj", "{21F3E6CF-B76F-4059-9474-1AF1CE63CD6B}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DatabaseSizer", "DatabaseSizer.cs\DatabaseSizer.csproj", "{0114C963-C514-49C1-B7AB-DCB1825F498C}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -26,6 +28,10 @@ Global {21F3E6CF-B76F-4059-9474-1AF1CE63CD6B}.Debug|Any CPU.Build.0 = Debug|Any CPU {21F3E6CF-B76F-4059-9474-1AF1CE63CD6B}.Release|Any CPU.ActiveCfg = Release|Any CPU {21F3E6CF-B76F-4059-9474-1AF1CE63CD6B}.Release|Any CPU.Build.0 = Release|Any CPU + {0114C963-C514-49C1-B7AB-DCB1825F498C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0114C963-C514-49C1-B7AB-DCB1825F498C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0114C963-C514-49C1-B7AB-DCB1825F498C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0114C963-C514-49C1-B7AB-DCB1825F498C}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE