diff --git a/symmetric-db/src/main/java/org/jumpmind/db/platform/mysql/MySqlDdlBuilder.java b/symmetric-db/src/main/java/org/jumpmind/db/platform/mysql/MySqlDdlBuilder.java index 5dacbf4cdb..63e2483e15 100644 --- a/symmetric-db/src/main/java/org/jumpmind/db/platform/mysql/MySqlDdlBuilder.java +++ b/symmetric-db/src/main/java/org/jumpmind/db/platform/mysql/MySqlDdlBuilder.java @@ -319,6 +319,9 @@ protected String getSqlType(Column column) { && (column.getMappedTypeCode() == Types.DECIMAL || column.getMappedTypeCode() == Types.NUMERIC)) { sqlType = "BIGINT"; } + if (column.getMappedTypeCode() == Types.TIMESTAMP && column.getScale() > 0) { + sqlType = "TIMESTAMP(" + column.getScale() + ")"; + } return sqlType; } diff --git a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/mysql/MySqlDatabasePlatform.java b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/mysql/MySqlDatabasePlatform.java index 8f71c97825..530f023c35 100644 --- a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/mysql/MySqlDatabasePlatform.java +++ b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/mysql/MySqlDatabasePlatform.java @@ -1,5 +1,7 @@ package org.jumpmind.db.platform.mysql; +import java.sql.Types; + /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file @@ -22,6 +24,10 @@ import javax.sql.DataSource; import org.apache.commons.lang.StringUtils; +import org.jumpmind.db.model.Column; +import org.jumpmind.db.model.Database; +import org.jumpmind.db.model.Table; +import org.jumpmind.db.model.TypeMap; import org.jumpmind.db.platform.AbstractJdbcDatabasePlatform; import org.jumpmind.db.platform.DatabaseNamesConstants; import org.jumpmind.db.platform.PermissionResult; @@ -132,4 +138,22 @@ public PermissionResult getCreateSymRoutinePermission() { } return result; } + + @Override + public void makePlatformSpecific(Database database) { + for (Table table : database.getTables()) { + for (Column column : table.getColumns()) { + try { + if (column.getMappedTypeCode() == Types.DATE + && column.findPlatformColumn(DatabaseNamesConstants.ORACLE) != null) { + column.setMappedType(TypeMap.TIMESTAMP); + column.setMappedTypeCode(Types.TIMESTAMP); + column.setScale(6); + } + } + catch (Exception e) {} + } + } + super.makePlatformSpecific(database); + } }