Auto-répare le mot de passe du rôle BDD et change le port PostgreSQL
- Nouveau service one-shot db-sync : à chaque démarrage de la stack, il réaligne le mot de passe du rôle sbc_app sur APP_DB_PASSWORD (corrige « password authentication failed » quand le volume a été initialisé avec une ancienne valeur) ; l'app démarre après sa réussite - Port hôte PostgreSQL : 56432 → 58412 (conflit avec un service existant), toujours en loopback uniquement - Note de dépannage dans le README Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Fkg15RCxNgUys4ru73He2o
This commit is contained in:
4 files changed
+58
-4
No files matched your search
@@ -0,0 +1,23 @@
|
||||
#!/bin/sh
|
||||
# Runs at every stack start (db-sync service): keeps the sbc_app role's
|
||||
# password in sync with APP_DB_PASSWORD, even when the database volume was
|
||||
# initialized with a different value. Idempotent.
|
||||
set -eu
|
||||
|
||||
ESCAPED=$(printf %s "$APP_DB_PASSWORD" | sed "s/'/''/g")
|
||||
|
||||
psql -v ON_ERROR_STOP=1 <<EOSQL
|
||||
DO \$\$
|
||||
BEGIN
|
||||
IF NOT EXISTS (SELECT FROM pg_roles WHERE rolname = 'sbc_app') THEN
|
||||
CREATE ROLE sbc_app LOGIN NOSUPERUSER NOCREATEDB NOCREATEROLE;
|
||||
GRANT USAGE ON SCHEMA public TO sbc_app;
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO sbc_app;
|
||||
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO sbc_app;
|
||||
END IF;
|
||||
END
|
||||
\$\$;
|
||||
ALTER ROLE sbc_app WITH LOGIN PASSWORD '${ESCAPED}' NOSUPERUSER NOCREATEDB NOCREATEROLE;
|
||||
EOSQL
|
||||
|
||||
echo "sbc_app role synchronized."
|
||||
Reference in new issue
Block a user