{ pkgs, lib, config, ... }: let db = "enfants"; owner = "enfants"; passwordFile = enfants/passwordFile.clear; inherit (config.users) users groups; inherit (config) networking; # To be used in postStart when resetting the database drop = '' $PSQL -d template1 -AqtX --set ON_ERROR_STOP=1 -f - <= 11 #hostssl ${db} ${owner} all md5 local all postgres peer map=admin local samerole all peer map=user ''; identMap = '' # MAPNAME SYSTEM-USERNAME PG-USERNAME user root ${owner} user pgadmin ${owner} user julm ${owner} user ${owner} ${db} ''; }; systemd.services.postgresql = { postStart = lib.mkAfter '' connection_limit=64 \ encoding=UTF8 \ lc_collate=fr_FR.UTF-8 \ lc_type=fr_FR.UTF-8 \ owner=${owner} \ pass=$(cat ${passwordFile}) \ pg_createdb ${db} >/dev/null $PSQL -d "${db}" -AqtX --set ON_ERROR_STOP=1 -f - <