From 59bd7d6664217968faec74ac339c228e745a1ab3 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Wed, 12 Aug 2020 17:12:21 +0200 Subject: [PATCH] Improve robustness of postgresql 9.6 -> 11 migration (in particular dropcluster in case cluster 11 doesn't exists yet) --- .../data_migrations/0017_postgresql_9p6_to_11.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/yunohost/data_migrations/0017_postgresql_9p6_to_11.py b/src/yunohost/data_migrations/0017_postgresql_9p6_to_11.py index b0b527a73..e39cd84ad 100644 --- a/src/yunohost/data_migrations/0017_postgresql_9p6_to_11.py +++ b/src/yunohost/data_migrations/0017_postgresql_9p6_to_11.py @@ -25,11 +25,18 @@ class MyMigration(Migration): if not self.package_is_installed("postgresql-11"): raise YunohostError("migration_0017_postgresql_11_not_installed") + # Make sure there's a 9.6 cluster + try: + self.runcmd("pg_lsclusters | grep -q '^9.6 '") + except Exception as e: + logger.warning("It looks like there's not active 9.6 cluster, so probably don't need to run this migration") + return + if not space_used_by_directory("/var/lib/postgresql/9.6") > free_space_in_directory("/var/lib/postgresql"): raise YunohostError("migration_0017_not_enough_space", path="/var/lib/postgresql/") self.runcmd("systemctl stop postgresql") - self.runcmd("pg_dropcluster --stop 11 main") + self.runcmd("pg_dropcluster --stop 11 main || true") # We do not trigger an exception if the command fails because that probably means cluster 11 doesn't exists, which is fine because it's created during the pg_upgradecluster) self.runcmd("pg_upgradecluster -m upgrade 9.6 main") self.runcmd("pg_dropcluster --stop 9.6 main") self.runcmd("systemctl start postgresql")