From 06a066fe17d4f2561020e94d3a5bc7edf4ad6692 Mon Sep 17 00:00:00 2001 From: yalh76 Date: Mon, 15 Apr 2019 14:18:04 +0200 Subject: [PATCH 1/2] Force disconnection of all clients connected to the database --- data/helpers.d/psql | 1 + 1 file changed, 1 insertion(+) diff --git a/data/helpers.d/psql b/data/helpers.d/psql index 2212d692a..dc83cc0e8 100644 --- a/data/helpers.d/psql +++ b/data/helpers.d/psql @@ -105,6 +105,7 @@ ynh_psql_create_db() { # Requires YunoHost version 3.?.? or higher. ynh_psql_drop_db() { local db=$1 + ynh_psql_execute_as_root --sql="SELECT pg_terminate_backend (pg_stat_activity.pid) FROM pg_stat_activity WHERE pg_stat_activity.datname = '$db';" --database="$db" sudo --login --user=postgres dropdb $db } From dc19e579ff8731848bb46e401162ce7fdcf86ab3 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Mon, 22 Apr 2019 14:31:38 +0200 Subject: [PATCH 2/2] Add comment explaining the mystic incantation --- data/helpers.d/psql | 3 +++ 1 file changed, 3 insertions(+) diff --git a/data/helpers.d/psql b/data/helpers.d/psql index dc83cc0e8..a5bccedd6 100644 --- a/data/helpers.d/psql +++ b/data/helpers.d/psql @@ -105,6 +105,9 @@ ynh_psql_create_db() { # Requires YunoHost version 3.?.? or higher. ynh_psql_drop_db() { local db=$1 + # First, force disconnection of all clients connected to the database + # https://stackoverflow.com/questions/5408156/how-to-drop-a-postgresql-database-if-there-are-active-connections-to-it + # https://dba.stackexchange.com/questions/16426/how-to-drop-all-connections-to-a-specific-database-without-stopping-the-server ynh_psql_execute_as_root --sql="SELECT pg_terminate_backend (pg_stat_activity.pid) FROM pg_stat_activity WHERE pg_stat_activity.datname = '$db';" --database="$db" sudo --login --user=postgres dropdb $db }