diff --git a/src/Orchard.Tests/DataMigration/SchemaBuilderTests.cs b/src/Orchard.Tests/DataMigration/SchemaBuilderTests.cs index 9cb33357c..d37652e51 100644 --- a/src/Orchard.Tests/DataMigration/SchemaBuilderTests.cs +++ b/src/Orchard.Tests/DataMigration/SchemaBuilderTests.cs @@ -47,6 +47,7 @@ namespace Orchard.Tests.DataMigration { builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterType().As(); + builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterType().As(); diff --git a/src/Orchard/Data/Migration/Interpreters/SqlCeCommandInterpreter.cs b/src/Orchard/Data/Migration/Interpreters/SqlCeCommandInterpreter.cs new file mode 100644 index 000000000..a9c0810f9 --- /dev/null +++ b/src/Orchard/Data/Migration/Interpreters/SqlCeCommandInterpreter.cs @@ -0,0 +1,37 @@ +using System; +using NHibernate.Dialect; +using Orchard.Data.Migration.Schema; +using Orchard.Environment.Configuration; + +namespace Orchard.Data.Migration.Interpreters { + public class SqlCeCommandInterpreter : ICommandInterpreter { + private readonly Dialect _dialect; + private readonly ShellSettings _shellSettings; + + public string DataProvider { + get { return "SqlCe"; } + } + + public SqlCeCommandInterpreter( + ShellSettings shellSettings, + ISessionFactoryHolder sessionFactoryHolder) { + _shellSettings = shellSettings; + var configuration = sessionFactoryHolder.GetConfiguration(); + _dialect = Dialect.GetDialect(configuration.Properties); + } + + public string[] CreateStatements(DropIndexCommand command) { + + return new [] { String.Format("drop index {0}.{1}", + _dialect.QuoteForTableName(PrefixTableName(command.TableName)), + _dialect.QuoteForColumnName(PrefixTableName(command.IndexName))) + }; + } + + private string PrefixTableName(string tableName) { + if (string.IsNullOrEmpty(_shellSettings.DataTablePrefix)) + return tableName; + return _shellSettings.DataTablePrefix + "_" + tableName; + } + } +} diff --git a/src/Orchard/Orchard.Framework.csproj b/src/Orchard/Orchard.Framework.csproj index 963bb3b27..08c3da23a 100644 --- a/src/Orchard/Orchard.Framework.csproj +++ b/src/Orchard/Orchard.Framework.csproj @@ -178,6 +178,7 @@ +