diff --git a/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenElevenTwelve/SetDefaultTagsStorageType.cs b/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenElevenTwelve/SetDefaultTagsStorageType.cs
new file mode 100644
index 0000000000..9e4fe95100
--- /dev/null
+++ b/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenElevenTwelve/SetDefaultTagsStorageType.cs
@@ -0,0 +1,48 @@
+using Umbraco.Core.Logging;
+using Umbraco.Core.Persistence.SqlSyntax;
+
+namespace Umbraco.Core.Persistence.Migrations.Upgrades.TargetVersionSevenElevenTwelve
+{
+ ///
+ /// Set the default storageType for the tags datatype to "CSV" to ensure backwards compatibilty since the default is going to be JSON in new versions
+ ///
+
+ [Migration("7.12.0", 1, Constants.System.UmbracoMigrationName)]
+ public class SetDefaultTagsStorageType: MigrationBase
+ {
+ public SetDefaultTagsStorageType(ISqlSyntaxProvider sqlSyntax, ILogger logger) : base(sqlSyntax, logger)
+ {
+ }
+
+ public override void Up()
+ {
+ if (Context == null || Context.Database == null) return;
+
+
+ // We need to get all datatypes with an alias of "umbraco.tags" so we can loop over them and set the missing values if needed
+ var nodeIds = Context.Database.Query("SELECT NodeId FROM CmsDataType WHERE PropertyEditorAlias = {0}", Constants.PropertyEditors.TagsAlias);
+
+ foreach (var nodeId in nodeIds)
+ {
+ // We need to check if the node has a "storageType" set
+ var result = Context.Database.SingleOrDefault("SELECT value FROM CmsDataTypePrevalue WHERE nodeId = {0} AND alias = '{1}'", nodeId, "storageType");
+
+ // if the "storageType" has not been set we do so by adding a new row in the table for the nodid and set it
+ if (result == null)
+ {
+ Insert.IntoTable("CmsDataTypePrevalue").Row(new
+ {
+ datatypeNodId = nodeId,
+ value = "Csv",
+ sortOrder = 2,
+ alias = "storageType"
+ });
+ }
+ }
+ }
+
+ public override void Down()
+ {
+ }
+ }
+}
diff --git a/src/Umbraco.Core/Umbraco.Core.csproj b/src/Umbraco.Core/Umbraco.Core.csproj
index 9e6f0cb7e5..0fbfaa0b27 100644
--- a/src/Umbraco.Core/Umbraco.Core.csproj
+++ b/src/Umbraco.Core/Umbraco.Core.csproj
@@ -568,6 +568,7 @@
+