public string[] CreateStatements(AlterColumnCommand command) { var builder = new StringBuilder(); 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) { builder.Append(DefaultDataMigrationInterpreter.GetTypeName(_dialectLazy.Value, command.DbType, command.Length, command.Precision, command.Scale)); } else { if (command.Length > 0 || command.Precision > 0 || command.Scale > 0) { throw new BoyingException(T("Error while executing data migration: you need to specify the field's type in order to change its properties")); } } // [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) { builder2.Append(" set default ").Append(_dataMigrationInterpreter.ConvertToSqlValue(command.Default)).Append(" "); } // 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()); }
public MySqlCommandInterpreter(DefaultDataMigrationInterpreter dataMigrationInterpreter) { _dataMigrationInterpreter = dataMigrationInterpreter; T = NullLocalizer.Instance; }