diff --git a/docker/startup_scripts/start.sh b/docker/startup_scripts/start.sh index fa068a42f..00fdc5f89 100755 --- a/docker/startup_scripts/start.sh +++ b/docker/startup_scripts/start.sh @@ -339,10 +339,15 @@ resolve_cache_backend() { } # 3. Ensure the REDIS_CACHE waffle switch row exists (default: off). +# Uses get_or_create so the value is only set on first creation — +# subsequent restarts do NOT overwrite what the operator configured. +# (waffle_switch … off --create always writes off, breaking manual flips.) configure_redis_cache() { [[ -z "${REDIS_URL:-}" ]] && return 0 log "Ensuring REDIS_CACHE waffle switch exists (default: off)..." - python3 manage.py waffle_switch REDIS_CACHE off --create || true + python3 manage.py shell -c \ + "from waffle.models import Switch; Switch.objects.get_or_create(name='REDIS_CACHE', defaults={'active': False})" \ + || true } # 4. Block until Redis is reachable (or give up gracefully).