in service/src/main/java/org/apache/fineract/cn/provisioner/internal/repository/ProvisionerInitializer.java [200:223]
private void initializeDatabase(String metaDatabaseName) throws Exception {
this.logger.info("Creating meta database {} ", metaDatabaseName);
try (
final Connection connection = DataSourceUtils.createProvisionerConnection(this.environment, "postgres");
final Statement testStatement = connection.createStatement();
final Statement statement = connection.createStatement()
) {
final ResultSet validityQuery = testStatement.executeQuery("SELECT 1");
if (validityQuery.next()){
this.logger.info("Connection to database postgres established");
final ResultSet findDB = statement.executeQuery("SELECT datname FROM pg_database WHERE datname = '" + metaDatabaseName + "'");
if (!findDB.next()) {
this.logger.info("Database {} does not exists, creating the database {} now.", metaDatabaseName);
statement.execute("CREATE DATABASE " + metaDatabaseName);
} else {
this.logger.info("Database {} already exists.", metaDatabaseName);
}
} else {
this.logger.warn("Could not connect to database postgres");
throw new IllegalMonitorStateException("Could not connect to database postgres");
}
}
}