diff --git a/nixos/modules/services/backup/postgresql-backup.nix b/nixos/modules/services/backup/postgresql-backup.nix index 2e78cfa5e6d1..b05435b4db36 100644 --- a/nixos/modules/services/backup/postgresql-backup.nix +++ b/nixos/modules/services/backup/postgresql-backup.nix @@ -152,45 +152,48 @@ in }; - config = lib.mkMerge [ - { - assertions = [ - { - assertion = cfg.backupAll -> cfg.databases == [ ]; - message = "config.services.postgresqlBackup.backupAll cannot be used together with config.services.postgresqlBackup.databases"; - } - { - assertion = - cfg.compression == "none" - || (cfg.compression == "gzip" && cfg.compressionLevel >= 1 && cfg.compressionLevel <= 9) - || (cfg.compression == "zstd" && cfg.compressionLevel >= 1 && cfg.compressionLevel <= 19); - message = "config.services.postgresqlBackup.compressionLevel must be set between 1 and 9 for gzip and 1 and 19 for zstd"; - } - ]; - } - (lib.mkIf cfg.enable { - systemd.tmpfiles.rules = [ - "d '${cfg.location}' 0700 postgres - - -" - ]; - }) - (lib.mkIf (cfg.enable && cfg.backupAll) { - systemd.services.postgresqlBackup = postgresqlBackupService "all" "pg_dumpall ${cfg.pgdumpOptions}"; - }) - (lib.mkIf (cfg.enable && !cfg.backupAll) { - systemd.services = lib.listToAttrs ( - map ( - db: - let - cmd = "pg_dump ${cfg.pgdumpOptions} ${db}"; - in + config = lib.mkIf cfg.enable ( + lib.mkMerge [ + { + assertions = [ { - name = "postgresqlBackup-${db}"; - value = postgresqlBackupService db cmd; + assertion = cfg.backupAll -> cfg.databases == [ ]; + message = "config.services.postgresqlBackup.backupAll cannot be used together with config.services.postgresqlBackup.databases"; } - ) cfg.databases - ); - }) - ]; + { + assertion = + cfg.compression == "none" + || (cfg.compression == "gzip" && cfg.compressionLevel >= 1 && cfg.compressionLevel <= 9) + || (cfg.compression == "zstd" && cfg.compressionLevel >= 1 && cfg.compressionLevel <= 19); + message = "config.services.postgresqlBackup.compressionLevel must be set between 1 and 9 for gzip and 1 and 19 for zstd"; + } + ]; + + systemd.tmpfiles.rules = [ + "d '${cfg.location}' 0700 postgres - - -" + ]; + } + + (lib.mkIf cfg.backupAll { + systemd.services.postgresqlBackup = postgresqlBackupService "all" "pg_dumpall ${cfg.pgdumpOptions}"; + }) + + (lib.mkIf (!cfg.backupAll) { + systemd.services = lib.listToAttrs ( + map ( + db: + let + cmd = "pg_dump ${cfg.pgdumpOptions} ${db}"; + in + { + name = "postgresqlBackup-${db}"; + value = postgresqlBackupService db cmd; + } + ) cfg.databases + ); + }) + ] + ); meta.maintainers = with lib.maintainers; [ Scrumplex ]; }