{ config, lib, pkgs, ... }: # sudo -u postgres vacuumdb --all --analyze-in-stages # /var/lib/postgresql/16/delete_old_cluster.sh let vars = import ./vars.nix; dataDir = "${vars.primary_db}/postgresql/nix/${config.services.postgresql.package.psqlSchema}"; backupLocation = "${vars.primary_db}/postgresql/nix_backups"; in { services = { postgresql = { inherit dataDir; enable = true; enableJIT = true; package = pkgs.postgresql_16; identMap = '' # ArbitraryMapName systemUser DBUser superuser_map root postgres superuser_map alice postgres # Let other names login as themselves superuser_map /^(.*)$ \1 ''; # initialScript = config.sops.secrets."postgres/init".path; ensureDatabases = [ "atticd" ]; ensureUsers = [ { name = "atticd"; ensureDBOwnership = true; } ]; refreshCollation = true; vacuumAnalyzeTimer.enable = true; upgrade = { enable = true; stopServices = [ "hydra-evaluator" "hydra-init" "hydra-notify" "hydra-queue-runner" "hydra-send-stats" "hydra-server" "atticd" ]; }; }; postgresqlBackup = { enable = true; compression = "zstd"; compressionLevel = 19; pgdumpOptions = "--create --clean"; location = backupLocation; }; }; }