Merge pull request #5548 from minglei84/1.9.x

Fixed [Default Value] And [DropForeignKeyCommand] For Mysql
This commit is contained in:
Sébastien Ros
2015-07-23 12:35:15 -07:00
2 changed files with 27 additions and 5 deletions

View File

@@ -270,7 +270,9 @@ namespace Orchard.Data.Migration.Interpreters {
var builder = new StringBuilder();
builder.AppendFormat("alter table {0} drop constraint {1}", _dialectLazy.Value.QuoteForTableName(PrefixTableName(command.SrcTable)), PrefixTableName(command.Name));
builder.Append("alter table ")
+ .Append(_dialectLazy.Value.QuoteForTableName(PrefixTableName(command.SrcTable)))
+ .Append(_dialectLazy.Value.GetDropForeignKeyConstraintString(PrefixTableName(command.Name)));
_sqlStatements.Add(builder.ToString());
RunPendingStatements();

View File

@@ -1,4 +1,5 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Text;
using NHibernate.Dialect;
@@ -34,6 +35,7 @@ namespace Orchard.Data.Migration.Interpreters {
builder.AppendFormat("alter table {0} modify column {1} ",
_dialectLazy.Value.QuoteForTableName(PrefixTableName(command.TableName)),
_dialectLazy.Value.QuoteForColumnName(command.ColumnName));
var initLength = builder.Length;
// type
if (command.DbType != DbType.Object) {
@@ -46,13 +48,31 @@ namespace Orchard.Data.Migration.Interpreters {
}
// [default value]
var builder2 = new StringBuilder();
builder2.AppendFormat("alter table {0} alter column {1} ",
_dialectLazy.Value.QuoteForTableName(PrefixTableName(command.TableName)),
_dialectLazy.Value.QuoteForColumnName(command.ColumnName));
var initLength2 = builder2.Length;
if (command.Default != null) {
builder.Append(" set default ").Append(DefaultDataMigrationInterpreter.ConvertToSqlValue(command.Default)).Append(" ");
builder2.Append(" set default ").Append(DefaultDataMigrationInterpreter.ConvertToSqlValue(command.Default)).Append(" ");
}
return new [] {
builder.ToString()
};
// result
var result = new List<string>();
if (builder.Length > initLength)
{
result.Add(builder.ToString());
}
if (builder2.Length > initLength2)
{
result.Add(builder2.ToString());
}
return result.ToArray();
}
private string PrefixTableName(string tableName) {