diff --git a/src/Orchard.Web/Modules/Orchard.Indexing/Migrations.cs b/src/Orchard.Web/Modules/Orchard.Indexing/Migrations.cs index 7621b2898..5905ff0d2 100644 --- a/src/Orchard.Web/Modules/Orchard.Indexing/Migrations.cs +++ b/src/Orchard.Web/Modules/Orchard.Indexing/Migrations.cs @@ -1,11 +1,18 @@ using System; +using System.Globalization; +using Orchard.ContentManagement.MetaData; using Orchard.Data.Migration; namespace Orchard.Indexing { public class Migrations : DataMigrationImpl { + private readonly IContentDefinitionManager _contentDefinitionManager; + + public Migrations(IContentDefinitionManager contentDefinitionManager) { + _contentDefinitionManager = contentDefinitionManager; + } public int Create() { - SchemaBuilder.CreateTable("IndexingTaskRecord", + SchemaBuilder.CreateTable("IndexingTaskRecord", table => table .Column("Id", column => column.PrimaryKey().Identity()) .Column("Action") @@ -13,10 +20,20 @@ namespace Orchard.Indexing { .Column("ContentItemRecord_id") ); - return 1; + return 2; } - // todo: When upgrading from 1, change TypeIndexing.Included to TypeIndexing.Indexes = "Search" - // todo: When upgrading from 1, define SearchSettingsPart.SelectedIndex to "Search" + public int UpdateFrom1() { + + foreach (var typeDefinition in _contentDefinitionManager.ListTypeDefinitions()) { + if (typeDefinition.Settings.ContainsKey("TypeIndexing.Included") && Convert.ToBoolean(typeDefinition.Settings["TypeIndexing.Included"], CultureInfo.InvariantCulture)) { + typeDefinition.Settings.Remove("TypeIndexing.Included"); + typeDefinition.Settings["TypeIndexing.Indexes"] = "Search"; + _contentDefinitionManager.StoreTypeDefinition(typeDefinition); + } + } + + return 2; + } } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Search/Migrations.cs b/src/Orchard.Web/Modules/Orchard.Search/Migrations.cs index 8b45b8266..682c4e197 100644 --- a/src/Orchard.Web/Modules/Orchard.Search/Migrations.cs +++ b/src/Orchard.Web/Modules/Orchard.Search/Migrations.cs @@ -1,8 +1,16 @@ -using Orchard.ContentManagement.MetaData; +using System.Linq; +using Orchard.ContentManagement.MetaData; +using Orchard.Data; using Orchard.Data.Migration; +using Orchard.Search.Models; namespace Orchard.Search { public class SearchDataMigration : DataMigrationImpl { + private readonly IRepository _searchSettingsPartRecordRepository; + + public SearchDataMigration(IRepository searchSettingsPartRecordRepository) { + _searchSettingsPartRecordRepository = searchSettingsPartRecordRepository; + } public int Create() { @@ -29,6 +37,11 @@ namespace Orchard.Search { .AddColumn("SearchIndex") ); + var settings = _searchSettingsPartRecordRepository.Table.FirstOrDefault(); + if (settings != null) { + settings.SearchIndex = "Search"; + } + return 2; } }