Adding migration steps for Orchard.Indexing and Orchard.Search

--HG--
branch : 1.x
This commit is contained in:
Sebastien Ros
2013-03-09 12:12:32 -08:00
parent 48bed76df4
commit a8cb23054f
2 changed files with 35 additions and 5 deletions

View File

@@ -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<int>("Id", column => column.PrimaryKey().Identity())
.Column<int>("Action")
@@ -13,10 +20,20 @@ namespace Orchard.Indexing {
.Column<int>("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;
}
}
}

View File

@@ -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<SearchSettingsPartRecord> _searchSettingsPartRecordRepository;
public SearchDataMigration(IRepository<SearchSettingsPartRecord> searchSettingsPartRecordRepository) {
_searchSettingsPartRecordRepository = searchSettingsPartRecordRepository;
}
public int Create() {
@@ -29,6 +37,11 @@ namespace Orchard.Search {
.AddColumn<string>("SearchIndex")
);
var settings = _searchSettingsPartRecordRepository.Table.FirstOrDefault();
if (settings != null) {
settings.SearchIndex = "Search";
}
return 2;
}
}