private void initializeDatabase()

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");
      }
    }
  }