in service/src/main/java/org/apache/fineract/cn/provisioner/internal/service/TenantService.java [279:301]
private void deleteDatabase(final String identifier) {
final DataStoreOption dataStoreOption = provisionerProperties.getDataStoreOption();
if (dataStoreOption.isEnabled(DataStoreOption.RDBMS)) {
try (final Connection provisionerConnection = DataSourceUtils.createProvisionerConnection(this.environment, META_KEYSPACE)) {
final Optional<TenantDAO> optionalTenantDAO = TenantDAO.find(provisionerConnection, identifier);
if (optionalTenantDAO.isPresent()) {
final DatabaseConnectionInfo databaseConnectionInfo = optionalTenantDAO.get().map();
try (
final Connection connection = DataSourceUtils.create(databaseConnectionInfo);
final Statement dropStatement = connection.createStatement()
) {
dropStatement.execute("DROP DATABASE " + databaseConnectionInfo.getDatabaseName());
}
TenantDAO.delete(provisionerConnection, identifier);
}
} catch (final SQLException sqlex) {
this.logger.error(sqlex.getMessage(), sqlex);
throw new IllegalStateException("Could not delete database {}!" + identifier);
}
} else {
this.logger.warn("Datastore option not chosen, Tenant in PostgreSQL RDBMS not created");
}
}