Base path to put the replications
'';
};
+ mainPackage = lib.mkOption {
+ type = lib.types.package;
+ default = pkgs.postgresql;
+ description = ''
+ Postgresql package available in shell
+ '';
+ };
hosts = lib.mkOption {
default = {};
description = ''
};
config = lib.mkIf cfg.enable {
- nixpkgs.overlays = [ (self: super: {
- postgresql = self.postgresql_11_custom;
- }) ];
-
users.users.postgres = {
name = "postgres";
uid = config.ids.uids.postgres;
extraGroups = [ "keys" ];
};
users.groups.postgres.gid = config.ids.gids.postgres;
- environment.systemPackages = [ pkgs.postgresql ];
+ environment.systemPackages = [ cfg.mainPackage ];
secrets.keys = lib.flatten (lib.mapAttrsToList (name: hcfg: [
{
${hcfg.package}/bin/pg_dumpall -h ${dataDir} -f ${backupDir}/$(${pkgs.coreutils}/bin/date -Iminutes).sql
'';
u = pkgs.callPackage ./utils.nix {};
- cleanup_script = pkgs.writeScript "cleanup_postgresql_${name}" (u.keepLastNDumps "sql" backupDir 12);
+ cleanup_script = pkgs.writeScript "cleanup_postgresql_${name}" (u.keepLastNDumps "sql" backupDir 6);
in [
"0 22,4,10,16 * * * postgres ${backup_script}"
"0 3 * * * postgres ${cleanup_script}"