fix: sync duplicate column
This commit is contained in:
parent
74d7d5d86b
commit
2e44576e7f
|
@ -15,6 +15,7 @@ public class TableCondition extends Condition {
|
|||
return TableCondition.builder()
|
||||
.databaseName(condition.getDatabaseName())
|
||||
.tableName(tableName)
|
||||
.schemaName(condition.getSchemaName())
|
||||
.ignoreTableNameRegex(condition.getIgnoreTableNameRegex())
|
||||
.ignoreTableColumnNameRegex(condition.getIgnoreTableColumnNameRegex())
|
||||
.build();
|
||||
|
|
|
@ -30,10 +30,11 @@ public class JdbcColumnMetaRepository implements ColumnMetaRepository {
|
|||
List<ColumnMeta> columnDocs = new ArrayList<>();
|
||||
String databaseName = tableCondition.getDatabaseName();
|
||||
String tableName = tableCondition.getTableName();
|
||||
List<String> primaryKeyColumns = selectPrimaryKeyColumns(connection.getMetaData(), databaseName, tableName);
|
||||
List<String> primaryKeyColumns = selectPrimaryKeyColumns(connection.getMetaData(), tableCondition);
|
||||
ResultSet columnsResult;
|
||||
try {
|
||||
columnsResult = connection.getMetaData().getColumns(databaseName, null, tableName, null);
|
||||
columnsResult = connection.getMetaData()
|
||||
.getColumns(databaseName, tableCondition.getSchemaName(), tableName, null);
|
||||
} catch (SQLException e) {
|
||||
log.warn("warn: ignore columns in " + databaseName + "." + tableName);
|
||||
return columnDocs;
|
||||
|
@ -85,9 +86,9 @@ public class JdbcColumnMetaRepository implements ColumnMetaRepository {
|
|||
}
|
||||
|
||||
private List<String> selectPrimaryKeyColumns(DatabaseMetaData meta,
|
||||
String catalog,
|
||||
String tableName) throws SQLException {
|
||||
ResultSet result = meta.getPrimaryKeys(catalog, null, tableName);
|
||||
TableCondition tableCondition) throws SQLException {
|
||||
ResultSet result = meta.getPrimaryKeys(tableCondition.getDatabaseName(),
|
||||
tableCondition.getSchemaName(), tableCondition.getTableName());
|
||||
List<String> columns = new ArrayList<>();
|
||||
while (result.next()) {
|
||||
String columnName = result.getString("COLUMN_NAME");
|
||||
|
|
|
@ -28,7 +28,8 @@ public class JdbcIndexMetaRepository implements IndexMetaRepository {
|
|||
List<IndexMeta> indexMetas = new ArrayList<>();
|
||||
ResultSet indexResults;
|
||||
try {
|
||||
indexResults = connection.getMetaData().getIndexInfo(databaseName, null, tableName, false, false);
|
||||
indexResults = connection.getMetaData()
|
||||
.getIndexInfo(databaseName, condition.getSchemaName(), tableName, false, false);
|
||||
} catch (SQLException e) {
|
||||
log.warn("warn: ignore " + databaseName + "." + tableName);
|
||||
return indexMetas;
|
||||
|
|
Loading…
Reference in New Issue