From f81ba27e5647332b81d56c855015f2ca686547f9 Mon Sep 17 00:00:00 2001 From: soraefir Date: Wed, 6 May 2026 02:05:52 +0200 Subject: [PATCH] Fix race condition --- modules/server/database/default.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/modules/server/database/default.nix b/modules/server/database/default.nix index 48667ae..20370cb 100644 --- a/modules/server/database/default.nix +++ b/modules/server/database/default.nix @@ -41,17 +41,23 @@ in { description = "Set DB passwords and ownership after Postgres is ready"; after = [ "postgresql.service" ]; requires = [ "postgresql.service" ]; + partOf = [ "postgresql.service" ]; wantedBy = [ "multi-user.target" ]; serviceConfig = { Type = "oneshot"; User = "postgres"; # Runs as postgres user directly RemainAfterExit = true; + ExecStartPre = "${pkgs.coreutils}/bin/sleep 2"; }; script = '' PSQL="${pkgs.postgresql}/bin/psql" ${lib.concatMapStringsSep "\n" (name: '' + until $PSQL -tAc "SELECT 1 FROM pg_roles WHERE rolname = '${name}_user'" | grep -q 1; do + echo "Waiting for user ${name}_user..." + sleep 1 + done $PSQL -tAc "ALTER DATABASE ${name}_db OWNER TO ${name}_user;" if [ -f "${config.sops.secrets."${name}_pass".path}" ]; then