From 866bfc8a6325d04339df9e23ae2412a306ca24c6 Mon Sep 17 00:00:00 2001 From: Sebastien Ros Date: Fri, 21 Jun 2013 16:37:42 -0700 Subject: [PATCH] Adding upgrade steps for Orchard.Taxonomies --HG-- branch : 1.x --- .../Upgrade/Controllers/ContentPickerController.cs | 2 +- .../Modules/Upgrade/Controllers/TaxonomyController.cs | 6 +++++- .../Modules/Upgrade/Services/IUpgradeService.cs | 2 +- .../Modules/Upgrade/Services/UpgradeService.cs | 10 ++++++++-- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/Orchard.Web/Modules/Upgrade/Controllers/ContentPickerController.cs b/src/Orchard.Web/Modules/Upgrade/Controllers/ContentPickerController.cs index ab7ba1a5f..9635300b6 100644 --- a/src/Orchard.Web/Modules/Upgrade/Controllers/ContentPickerController.cs +++ b/src/Orchard.Web/Modules/Upgrade/Controllers/ContentPickerController.cs @@ -42,7 +42,7 @@ namespace Upgrade.Controllers { if (!_orchardServices.Authorizer.Authorize(StandardPermissions.SiteOwner, T("Not allowed to migrate Orchard.ContentPicker."))) return new HttpUnauthorizedResult(); try { - _upgradeService.CopyTable("Navigation_ContentMenuItemPartRecord", "Orchard_ContentPicker_ContentMenuItemPartRecord"); + _upgradeService.CopyTable("Navigation_ContentMenuItemPartRecord", "Orchard_ContentPicker_ContentMenuItemPartRecord", new string[0]); _orchardServices.Notifier.Information(T("Content Picker menu items were migrated successfully.")); } diff --git a/src/Orchard.Web/Modules/Upgrade/Controllers/TaxonomyController.cs b/src/Orchard.Web/Modules/Upgrade/Controllers/TaxonomyController.cs index 1ff357c2f..7bebf23e7 100644 --- a/src/Orchard.Web/Modules/Upgrade/Controllers/TaxonomyController.cs +++ b/src/Orchard.Web/Modules/Upgrade/Controllers/TaxonomyController.cs @@ -49,7 +49,11 @@ namespace Upgrade.Controllers { if (!_orchardServices.Authorizer.Authorize(StandardPermissions.SiteOwner, T("Not allowed to migrate Contrib.Taxonomies."))) return new HttpUnauthorizedResult(); try { - _upgradeService.CopyTable("Contrib_Taxonomies_TermPartRecord", "Orchard_Taxonomies_TermPartRecord"); + _upgradeService.CopyTable("Contrib_Taxonomies_TaxonomyPartRecord", "Orchard_Taxonomies_TaxonomyPartRecord", new string[0]); + _upgradeService.CopyTable("Contrib_Taxonomies_TermContentItem", "Orchard_Taxonomies_TermContentItem", new [] { "Id" }); + _upgradeService.CopyTable("Contrib_Taxonomies_TermPartRecord", "Orchard_Taxonomies_TermPartRecord", new string[0]); + _upgradeService.CopyTable("Contrib_Taxonomies_TermsPartRecord", "Orchard_Taxonomies_TermsPartRecord", new string[0]); + _upgradeService.CopyTable("Contrib_Taxonomies_TermWidgetPartRecord", "Orchard_Taxonomies_TermWidgetPartRecord", new string[0]); _orchardServices.Notifier.Information(T("Taxonomies were migrated successfully.")); } diff --git a/src/Orchard.Web/Modules/Upgrade/Services/IUpgradeService.cs b/src/Orchard.Web/Modules/Upgrade/Services/IUpgradeService.cs index ce0f3823a..31dbc06da 100644 --- a/src/Orchard.Web/Modules/Upgrade/Services/IUpgradeService.cs +++ b/src/Orchard.Web/Modules/Upgrade/Services/IUpgradeService.cs @@ -4,7 +4,7 @@ using Orchard; namespace Upgrade.Services { public interface IUpgradeService : IDependency { - void CopyTable(string fromTableName, string toTableName); + void CopyTable(string fromTableName, string toTableName, string[] ignoreColumns); void ExecuteReader(string sqlStatement, Action action); string GetPrefixedTableName(string tableName); } diff --git a/src/Orchard.Web/Modules/Upgrade/Services/UpgradeService.cs b/src/Orchard.Web/Modules/Upgrade/Services/UpgradeService.cs index a44eb37f5..0a593b882 100644 --- a/src/Orchard.Web/Modules/Upgrade/Services/UpgradeService.cs +++ b/src/Orchard.Web/Modules/Upgrade/Services/UpgradeService.cs @@ -2,7 +2,6 @@ using System.Collections.Generic; using System.Data; using System.Linq; -using System.Transactions; using Orchard.Data; using Orchard.Environment.Configuration; using Orchard.Logging; @@ -20,7 +19,7 @@ namespace Upgrade.Services { public ILogger Logger { get; set; } - public void CopyTable(string fromTableName, string toTableName) { + public void CopyTable(string fromTableName, string toTableName, string[] ignoreColumns) { var fromPrefixedTableName = GetPrefixedTableName(fromTableName); var toPrefixedTableName = GetPrefixedTableName(toTableName); @@ -47,6 +46,10 @@ namespace Upgrade.Services { var statement = String.Format("INSERT INTO {0} (", toPrefixedTableName); foreach (var keyValuePair in record) { + if (ignoreColumns.Contains(keyValuePair.Key)) { + continue; + } + statement += keyValuePair.Key; if (keyValuePair.Key != record.Last().Key) { statement += ", "; @@ -56,6 +59,9 @@ namespace Upgrade.Services { statement += ") VALUES ( "; foreach (var keyValuePair in record) { + if (ignoreColumns.Contains(keyValuePair.Key)) { + continue; + } var parameter = command.CreateParameter(); parameter.ParameterName = "@" + keyValuePair.Key;