diff --git a/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionFourOneZero/AddPreviewXmlTable.cs b/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionFourOneZero/AddPreviewXmlTable.cs
new file mode 100644
index 0000000000..4e8d3165fb
--- /dev/null
+++ b/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionFourOneZero/AddPreviewXmlTable.cs
@@ -0,0 +1,32 @@
+using System.Linq;
+using Umbraco.Core.Configuration;
+using Umbraco.Core.Logging;
+using Umbraco.Core.Persistence.SqlSyntax;
+
+namespace Umbraco.Core.Persistence.Migrations.Upgrades.TargetVersionFourOneZero
+{
+ [Migration("4.1.0", 0, GlobalSettings.UmbracoMigrationName)]
+ public class AddPreviewXmlTable : MigrationBase
+ {
+ public AddPreviewXmlTable(ISqlSyntaxProvider sqlSyntax, ILogger logger)
+ : base(sqlSyntax, logger)
+ {
+ }
+
+ public override void Up()
+ {
+ var tableName = "cmsPreviewXml";
+ var tables = SqlSyntax.GetTablesInSchema(Context.Database).ToArray();
+ if (tables.InvariantContains(tableName)) return;
+
+ Create.Table(tableName)
+ .WithColumn("nodeId").AsInt32().NotNullable()
+ .WithColumn("versionId").AsGuid().NotNullable()
+ .WithColumn("timestamp").AsDateTime().NotNullable()
+ .WithColumn("xml").AsString();
+ }
+
+ public override void Down()
+ { }
+ }
+}
\ No newline at end of file
diff --git a/src/Umbraco.Core/Umbraco.Core.csproj b/src/Umbraco.Core/Umbraco.Core.csproj
index 2bbf4a7c7b..055be82ff1 100644
--- a/src/Umbraco.Core/Umbraco.Core.csproj
+++ b/src/Umbraco.Core/Umbraco.Core.csproj
@@ -415,6 +415,7 @@
+