From 2a8c51128e02dbe1b31742ba74d709168ab9269c Mon Sep 17 00:00:00 2001 From: Sebastien Ros Date: Mon, 21 Jun 2010 13:44:43 -0700 Subject: [PATCH] Added upgrade database command --HG-- branch : dev --- .../DataMigration/DataMigrationTests.cs | 18 ----------- .../Commands/DataMigrationCommands.cs | 31 +++++++++++++++++++ .../{Commands => }/IDataMigrationCommand.cs | 2 +- src/Orchard/Orchard.Framework.csproj | 3 +- 4 files changed, 34 insertions(+), 20 deletions(-) create mode 100644 src/Orchard/DataMigration/Commands/DataMigrationCommands.cs rename src/Orchard/DataMigration/{Commands => }/IDataMigrationCommand.cs (51%) diff --git a/src/Orchard.Tests/DataMigration/DataMigrationTests.cs b/src/Orchard.Tests/DataMigration/DataMigrationTests.cs index e9482b363..a12e2e58b 100644 --- a/src/Orchard.Tests/DataMigration/DataMigrationTests.cs +++ b/src/Orchard.Tests/DataMigration/DataMigrationTests.cs @@ -149,24 +149,6 @@ namespace Orchard.Tests.DataMigration { } } - public class StubLoaders : ExtensionLoaderBase { - #region Implementation of IExtensionLoader - - public override int Order { - get { return 1; } - } - - public override ExtensionProbeEntry Probe(ExtensionDescriptor descriptor) { - return new ExtensionProbeEntry { Descriptor = descriptor, Loader = this }; - } - - public override ExtensionEntry Load(ExtensionDescriptor descriptor) { - return new ExtensionEntry { Descriptor = descriptor, ExportedTypes = new Type[0] }; - } - - #endregion - } - [Test] public void DataMigrationShouldDoNothingIfNoDataMigrationIsProvidedForFeature() { Init(new Type[] {typeof (DataMigrationEmpty)}); diff --git a/src/Orchard/DataMigration/Commands/DataMigrationCommands.cs b/src/Orchard/DataMigration/Commands/DataMigrationCommands.cs new file mode 100644 index 000000000..4faca9604 --- /dev/null +++ b/src/Orchard/DataMigration/Commands/DataMigrationCommands.cs @@ -0,0 +1,31 @@ +using System; +using Orchard.Commands; + +namespace Orchard.DataMigration.Commands { + public class DataMigrationCommands : DefaultOrchardCommandHandler { + private readonly IDataMigrationManager _dataMigrationManager; + + public DataMigrationCommands( + IDataMigrationManager dataMigrationManager) { + _dataMigrationManager = dataMigrationManager; + } + + [OrchardSwitch] + public string Feature { get; set; } + + [CommandName("upgrade database")] + [CommandHelp("upgrade database /Feature: \r\n\t" + "Upgrades or create the database tables for the named ")] + [OrchardSwitches("Feature")] + public string UpgradeDatabase() { + try { + _dataMigrationManager.Upgrade(Feature); + } + catch ( Exception ex ) { + Context.Output.WriteLine(T("An error occured while upgrading the database: " + ex.Message)); + return "Upgrade terminated."; + } + + return "Database upgraded"; + } + } +} \ No newline at end of file diff --git a/src/Orchard/DataMigration/Commands/IDataMigrationCommand.cs b/src/Orchard/DataMigration/IDataMigrationCommand.cs similarity index 51% rename from src/Orchard/DataMigration/Commands/IDataMigrationCommand.cs rename to src/Orchard/DataMigration/IDataMigrationCommand.cs index ee2338251..cb56b9c63 100644 --- a/src/Orchard/DataMigration/Commands/IDataMigrationCommand.cs +++ b/src/Orchard/DataMigration/IDataMigrationCommand.cs @@ -1,4 +1,4 @@ -namespace Orchard.DataMigration.Commands { +namespace Orchard.DataMigration { public interface IDataMigrationCommand { } } diff --git a/src/Orchard/Orchard.Framework.csproj b/src/Orchard/Orchard.Framework.csproj index 04c322a64..3ac95b7c7 100644 --- a/src/Orchard/Orchard.Framework.csproj +++ b/src/Orchard/Orchard.Framework.csproj @@ -348,7 +348,8 @@ Code - + +