diff --git a/src/net/sourceforge/schemaspy/model/Database.java b/src/net/sourceforge/schemaspy/model/Database.java index 7800f50..0945e95 100755 --- a/src/net/sourceforge/schemaspy/model/Database.java +++ b/src/net/sourceforge/schemaspy/model/Database.java @@ -975,7 +975,7 @@ private void updateFromXmlMetadata(SchemaMeta schemaMeta) throws SQLException { for (TableMeta tableMeta : schemaMeta.getTables()) { Table table; - if (tableMeta.getRemoteSchema() != null) { + if (tableMeta.getRemoteCatalog() != null || tableMeta.getRemoteSchema() != null) { table = remoteTables.get(getRemoteTableKey(tableMeta.getRemoteCatalog(), tableMeta.getRemoteSchema(), tableMeta.getName())); } else { table = combined.get(tableMeta.getName()); diff --git a/src/net/sourceforge/schemaspy/model/Table.java b/src/net/sourceforge/schemaspy/model/Table.java index dd7214c..9b64a16 100755 --- a/src/net/sourceforge/schemaspy/model/Table.java +++ b/src/net/sourceforge/schemaspy/model/Table.java @@ -1133,6 +1133,12 @@ public String getName() { return "Defined in XML"; } }; + + // they forgot to say it was a primary key + if (!parentColumn.isPrimary()) { + logger.warning("Assuming " + parentColumn.getTable() + "." + parentColumn + " is a primary key due to being referenced by " + col.getTable() + "." + col); + parent.setPrimaryColumn(parentColumn); + } } } else { logger.warning("Undefined table '" + fk.getTableName() + "' referenced by '" + getName() + '.' + col.getName() + "' in XML metadata");