v1.5.2
Fix: PostgresBackend SSL default changed to prefer
Problem: PostgresBackend defaulted to ssl=True, which forced SSL negotiation. PostgreSQL servers without TLS certificates (Docker, local dev, private cloud networks) rejected the connection:
PostgreSQL server at "postgres:5432" rejected SSL upgrade
Fix: Default SSL mode changed to "prefer" (try SSL first, fall back to plaintext). This matches the standard libpq default behavior that PostgreSQL users expect.
Migration: No code changes required. Existing ssl=True is normalized to "prefer" (same behavior in SSL-capable environments, now also works without SSL). Explicit sslmode= in DSN always takes precedence.
New SSL modes
# Default: try SSL, fall back to plaintext
PostgresBackend("postgresql://localhost/db") # ssl="prefer"
# Force SSL (production with TLS-enabled PostgreSQL)
PostgresBackend("postgresql://localhost/db", ssl="require")
# Disable SSL explicitly
PostgresBackend("postgresql://localhost/db", ssl="disable")
# DSN always wins
PostgresBackend("postgresql://localhost/db?sslmode=require") # require regardless of ssl= paramFull changelog: v1.5.1...v1.5.2