diff --git a/src/Orchard.Tests/DataMigration/Utilities/NullInterpreter.cs b/src/Orchard.Tests/DataMigration/Utilities/NullInterpreter.cs index a89772b80..025970a55 100644 --- a/src/Orchard.Tests/DataMigration/Utilities/NullInterpreter.cs +++ b/src/Orchard.Tests/DataMigration/Utilities/NullInterpreter.cs @@ -24,5 +24,10 @@ namespace Orchard.Tests.DataMigration.Utilities { public void Visit(DropForeignKeyCommand command) { } + + public string PrefixTableName(string tableName) { + return tableName; + } + } } \ No newline at end of file diff --git a/src/Orchard/Data/Migration/Interpreters/DefaultDataMigrationInterpreter.cs b/src/Orchard/Data/Migration/Interpreters/DefaultDataMigrationInterpreter.cs index 72f634421..bb0da3d20 100644 --- a/src/Orchard/Data/Migration/Interpreters/DefaultDataMigrationInterpreter.cs +++ b/src/Orchard/Data/Migration/Interpreters/DefaultDataMigrationInterpreter.cs @@ -91,7 +91,7 @@ namespace Orchard.Data.Migration.Interpreters { RunPendingStatements(); } - private string PrefixTableName(string tableName) { + public string PrefixTableName(string tableName) { if (string.IsNullOrEmpty(_shellSettings.DataTablePrefix)) return tableName; return _shellSettings.DataTablePrefix + "_" + tableName; diff --git a/src/Orchard/Data/Migration/Interpreters/IDataMigrationInterpreter.cs b/src/Orchard/Data/Migration/Interpreters/IDataMigrationInterpreter.cs index a2225b12f..81ed48590 100644 --- a/src/Orchard/Data/Migration/Interpreters/IDataMigrationInterpreter.cs +++ b/src/Orchard/Data/Migration/Interpreters/IDataMigrationInterpreter.cs @@ -9,5 +9,6 @@ namespace Orchard.Data.Migration.Interpreters { void Visit(SqlStatementCommand command); void Visit(CreateForeignKeyCommand command); void Visit(DropForeignKeyCommand command); + string PrefixTableName(string tableName); } } diff --git a/src/Orchard/Data/Migration/Schema/SchemaBuilder.cs b/src/Orchard/Data/Migration/Schema/SchemaBuilder.cs index 66dc64287..de5291a61 100644 --- a/src/Orchard/Data/Migration/Schema/SchemaBuilder.cs +++ b/src/Orchard/Data/Migration/Schema/SchemaBuilder.cs @@ -28,6 +28,13 @@ namespace Orchard.Data.Migration.Schema { public Func FormatPrefix { get { return _formatPrefix; } } + + /// + /// Translate Table name into database table name - including prefixes + /// + public virtual string TableDbName(string srcTable) { + return _interpreter.PrefixTableName(String.Concat(FormatPrefix(FeaturePrefix), srcTable)); + } public SchemaBuilder CreateTable(string name, Action table) { var createTable = new CreateTableCommand(String.Concat(_formatPrefix(_featurePrefix), name));