HSAdmin Backend Domains, E-Mail, Datenbanken
Michael Hierweck
2014-08-28 c031f5004cb6f4f1e398688d1e46d445e3165982
Terminate pgsql database sessions before dropping users/databases.
2 files modified
2 ■■■■■ changed files
hsarback/src/de/hsadmin/mods/db/PgSqlDatabaseProcessorFactory.java 1 ●●●● patch | view | raw | blame | history
hsarback/src/de/hsadmin/mods/db/PgSqlUserProcessorFactory.java 1 ●●●● patch | view | raw | blame | history
hsarback/src/de/hsadmin/mods/db/PgSqlDatabaseProcessorFactory.java
@@ -45,6 +45,7 @@
        assert db.getInstance().equals("pgsql");
        JDBCProcessor aJDBCP = createPostgreSqlAdminProcessor();
        String aName = AbstractEntity.escapeString(db.getName());
        aJDBCP.addSQL("SELECT pg_terminate_backend(procpid) FROM pg_stat_activity WHERE datname='" + aName + "'");
        aJDBCP.addSQL("DROP DATABASE " + aName);
        return aJDBCP;
    }
hsarback/src/de/hsadmin/mods/db/PgSqlUserProcessorFactory.java
@@ -40,6 +40,7 @@
        assert dbu.getInstance().equals("pgsql");
        JDBCProcessor aJDBCP = PgSqlDatabaseProcessorFactory.createPostgreSqlAdminProcessor();
        String aName = AbstractEntity.escapeString(dbu.getName());
        aJDBCP.addSQL("SELECT pg_terminate_backend(procpid) FROM pg_stat_activity WHERE usename='" + aName + "'");
        aJDBCP.addSQL("DROP USER " + aName);
        return aJDBCP;
    }