Code Agency

#postgresql

8 articles tagged postgresql.

16 min read

313 GB of database, 71 GB of rows: the vacuum nobody let finish

A disk alert at 94% on a database where nothing had been imported and nothing had been deleted. Why Postgres grows faster than your data, the single idle connection that had been quietly blocking every vacuum for eleven days, the autovacuum defaults that are expressed in the wrong unit on a large table, and the difference between bloat you can vacuum away and growth you have to agree a retention policy for.

postgresqldevopsodooarchitecture
17 min read

The hour that doesn't exist: time zones, DST and the appointment that moved itself

A technician stood outside a locked building at seven in the morning because a recurring visit had been expanded into absolute instants six weeks before the clocks went back. The three kinds of "when" that don't convert into each other, why a recurrence rule is not a list of timestamps, what Odoo hands you over the API, and how to test a bug that only reproduces twice a year.

architecturepostgresqlodoonextjsdevelopment
16 min read

The column you can't just rename: schema changes without a maintenance window

A rename is the cheapest thing a database does and one of the most dangerous things a deploy does, because two versions of your application are always live at once. Expand, backfill, contract — the release boundary that makes it safe, the locks that bite anyway, and what changes when Odoo owns the schema.

postgresqldevopsarchitectureodoodevelopment
13 min read

LISTEN/NOTIFY in practice: realtime features without a message broker

Postgres can push an event to your app the moment a row commits. The trigger that catches every writer including the ERP, the listener that survives a reconnect without losing a change, the pooler that silently breaks all of it, and the bulk import that turns a live board into 40,000 notifications.

postgresqlarchitecturenextjsdevelopment
10 min read

Search that sells: Postgres tsvector vs Meilisearch vs Typesense

Visitors who use search buy at several times the rate of visitors who browse — which makes the search box a conversion feature, not a technical checkbox. When the database you already run is enough, when typo tolerance pays for itself, and the sync problem that is the real project either way.

postgresqlecommerceperformancearchitecture
6 min read

CloudNativePG in production: Postgres on Kubernetes without fear

Four years running CloudNativePG under ERPs and web apps: declarative failover, WAL-archived backups and major-version upgrades as config, not 3 AM SSH sessions. The gotchas to plan for, and where we'd still reach for something else.

postgresqlkubernetesdevops
7 min read

Postgres is enough: queues, search and pub/sub without five more containers

Before a two-developer project grows a Redis, a RabbitMQ and an Elasticsearch, look at what the database you already run can do. SKIP LOCKED queues, tsvector search, LISTEN/NOTIFY — and the measured signals that tell you when to graduate.

postgresqlarchitecturedevelopmentperformance