package liquibase.database.typeconversion.core; import liquibase.database.structure.type.BlobType; import liquibase.database.structure.type.BooleanType; import liquibase.database.structure.type.ClobType; import liquibase.database.structure.type.NumberType; import liquibase.database.Database; import liquibase.database.core.MySQLDatabase; import liquibase.database.structure.type.DataType; import liquibase.database.structure.type.DateTimeType; public class MySQLTypeConverter extends AbstractTypeConverter { public int getPriority() { return PRIORITY_DATABASE; } public boolean supports(Database database) { return database instanceof MySQLDatabase; } @Override public BooleanType getBooleanType() { return new BooleanType.NumericBooleanType("TINYINT(1)"); } @Override public ClobType getClobType() { return new ClobType("LONGTEXT"); } @Override public BlobType getLongBlobType() { return new BlobType("LONGBLOB"); } @Override public NumberType getNumberType() { return new NumberType("NUMERIC"); } @Override protected DataType getDataType(String columnTypeString, Boolean autoIncrement, String dataTypeName, String precision, String additionalInformation) { if (columnTypeString.equalsIgnoreCase("timestamp")) { return new DateTimeType("TIMESTAMP"); } return super.getDataType(columnTypeString, autoIncrement, dataTypeName, precision, additionalInformation); } }