use of com.manydesigns.portofino.upstairs.actions.database.connections.support.SelectableSchema in project Portofino by ManyDesigns.
the class ConnectionsAction method connectionWithSchemas.
public String connectionWithSchemas(String databaseName, ConnectionProvider connectionProvider, Form form) throws Exception {
JSONStringer js = new JSONStringer();
js.object();
FormUtil.writeToJson(form, js);
js.key("schemas").array();
for (SelectableSchema schema : getSchemas(connectionProvider)) {
js.object();
js.key("catalog").value(schema.catalogName);
js.key("name").value(schema.schemaName);
js.key("schema").value(schema.schema);
js.key("selected").value(schema.selected);
Schema dbSchema = DatabaseLogic.findSchemaByName(persistence.getModel(), databaseName, schema.schemaName);
FileObject changelogFile = persistence.getLiquibaseChangelogFile(dbSchema);
js.key("liquibase").value(changelogFile != null && changelogFile.getType() == FileType.FILE);
js.endObject();
}
js.endArray();
js.endObject();
return js.toString();
}
use of com.manydesigns.portofino.upstairs.actions.database.connections.support.SelectableSchema in project Portofino by ManyDesigns.
the class ConnectionsAction method getSchemas.
protected List<SelectableSchema> getSchemas(ConnectionProvider connectionProvider) throws Exception {
try (Connection conn = connectionProvider.acquireConnection()) {
logger.debug("Reading database metadata");
DatabaseMetaData metadata = conn.getMetaData();
List<String[]> schemaNamesFromDb = connectionProvider.getDatabasePlatform().getSchemaNames(metadata);
List<Schema> selectedSchemas = connectionProvider.getDatabase().getSchemas();
List<SelectableSchema> selectableSchemas = new ArrayList<>(schemaNamesFromDb.size());
for (String[] schemaName : schemaNamesFromDb) {
boolean selected = schemaNamesFromDb.size() == 1;
String logicalName = schemaName[1].toLowerCase();
String physicalName = schemaName[1];
if (physicalName.equals(logicalName)) {
physicalName = null;
}
for (Schema schema : selectedSchemas) {
if (schemaName[1].equals(schema.getActualSchemaName())) {
selected = true;
logicalName = schema.getSchemaName();
if (!schemaName[1].equals(logicalName)) {
physicalName = schemaName[1];
}
break;
}
}
SelectableSchema schema = new SelectableSchema(schemaName[0], physicalName, logicalName, selected);
selectableSchemas.add(schema);
}
return selectableSchemas;
}
}
Aggregations