diff --git a/modules/postgres.nix b/modules/postgres.nix index 8d4c593..dc3952e 100644 --- a/modules/postgres.nix +++ b/modules/postgres.nix @@ -389,13 +389,16 @@ in (lib.mkIf (cfg.enableAllPreloadedLibraries || cfg.configurePgStatStatements) (lib.concatStrings (map (db: (lib.concatMapStringsSep "\n" (ext: let # This is ugly... - ext' = lib.head (lib.splitString "-" ext); + extName = lib.head (lib.splitString "-" ext); + + extUpdateStatement = name: { + # pg_repack cannot be updated but reinstalling it is safe + "pg_repack" = "DROP EXTENSION pg_repack; CREATE EXTENSION pg_repack"; + "postgis" = "SELECT postgis_extensions_upgrade()"; + }.${name} or ''ALTER EXTENSION "${extName}" UPDATE''; in /* bash */ '' - $PSQL -tAd '${db}' -c 'CREATE EXTENSION IF NOT EXISTS "${ext'}"' - $PSQL -tAd '${db}' -c '${if ext' == "postgis" then - "SELECT postgis_extensions_upgrade()" - else - ''ALTER EXTENSION "${ext'}" UPDATE''}' + $PSQL -tAd '${db}' -c 'CREATE EXTENSION IF NOT EXISTS "${extName}"' + $PSQL -tAd '${db}' -c '${extUpdateStatement extName}' '') (lib.splitString "," (if cfg.enableAllPreloadedLibraries then cfg.settings.shared_preload_libraries else if cfg.configurePgStatStatements then