Best of PostgreSQLMarch 2026

  1. 1
    Article
    Avatar of infoqInfoQ·10w

    Netflix Automates RDS PostgreSQL to Aurora PostgreSQL Migration Across 400 Production Clusters

    Netflix built an internal automation platform to migrate nearly 400 RDS PostgreSQL production clusters to Amazon Aurora PostgreSQL with minimal downtime. The system uses a self-service workflow that handles physical read replica creation from storage snapshots, WAL replication validation, CDC slot coordination, controlled quiescence and cutover, and rollback safeguards. Because Netflix routes all database access through an Envoy-based data access layer that abstracts endpoints from application code, migrations happen transparently at the infrastructure level. A real-world case study shows how the team resolved an elevated OldestReplicationSlotLag caused by a stale logical replication slot before completing a successful migration for device certification and partner billing workloads.

  2. 2
    Article
    Avatar of postgresPostgreSQL·11w

    Autobase 2.6.0 released

    Autobase 2.6.0 introduces a blue-green deployment workflow for PostgreSQL clusters, enabling near-zero downtime upgrades. Users can prepare a fully upgraded cluster in advance, then switch traffic in seconds. Rollback is equally fast and lossless thanks to reverse logical replication. Autobase is an open-source DBaaS alternative that automates deployment, failover, backups, restores, upgrades, and scaling without requiring deep DBA expertise.

  3. 3
    Article
    Avatar of hnHacker News·9w

    pgit: What If Your Git History Was a SQL Database?

    pgit is a Git-like CLI that stores repository history in PostgreSQL using delta compression via a custom Table Access Method (pg-xpatch). It lets you query your entire commit history with SQL and provides built-in analyses for churn, coupling, hotspots, bus factor, and activity. Benchmarked against 20 real repositories (273k commits), pgit outcompresses `git gc --aggressive` on 12 out of 20 repos. The tool also works well as an interface for AI agents: a Claude agent produced a full codebase health report on Neon's repo in under 10 minutes using a 4-sentence prompt. pgit is not meant to replace git for daily workflows but excels at programmatic codebase history analysis.

  4. 4
    Article
    Avatar of lobstersLobsters·9w

    kdwarn: Introducing pgtui, a Postgres TUI client

    pgtui is a Postgres TUI client written in Rust that lets users interact with a PostgreSQL database from the terminal. Built with ratatui, sqlx, and the toml crate, it supports browsing relations, paginated data viewing, sorting, filtering with WHERE clauses, inserting and editing records via a terminal editor, deleting records, multi-column primary key support, and managing multiple database connections. The project originated from the idea of writing content in TOML/markdown and storing it in a database.

  5. 5
    Article
    Avatar of freecodecampfreeCodeCamp·8w

    An Introduction to Database System Design

    A beginner-friendly introduction to database system design covering core concepts and practical implementation. Topics include the components of a database system, types of databases (relational, NoSQL, cloud, etc.), the four stages of database design (requirements analysis, conceptual, logical, physical), and normalization through the first three normal forms. A hands-on section walks through designing a library database using PostgreSQL and pgAdmin 4, with SQL examples for creating tables with primary/foreign keys, inserting data, and querying with SELECT, WHERE, and JOIN.

  6. 6
    Article
    Avatar of depeszdepesz·9w

    Waiting for PostgreSQL 19 – Introduce the REPACK command – select * from depesz;

    PostgreSQL 19 introduces a new built-in REPACK command that consolidates the functionality of VACUUM FULL and CLUSTER into a single, cleaner command. It rewrites a table to reclaim disk space from bloat, supports ordering by a specified index, and includes a new progress view (pg_stat_progress_repack). Currently it acquires the same locks as VACUUM FULL, but the design explicitly paves the way for a future CONCURRENTLY mode. Practical examples show an 8.5GB bloated table reduced to ~1.6GB after deleting 80% of rows and running REPACK. Supported options include VERBOSE and ANALYZE, with the ability to analyze specific columns.

  7. 7
    Article
    Avatar of lobstersLobsters·11w

    The real cost of random I/O

    PostgreSQL's `random_page_cost` has been set to 4.0 by default for ~25 years, but experiments on modern SSDs show the actual cost ratio of random vs. sequential I/O is closer to 25-35x, not 4x. This means the planner picks suboptimal plans (sequential scan instead of index scan) for selectivities between 0.2% and 2.2%. Setting `random_page_cost` to ~30 aligns cost estimates with actual durations. However, lowering the value can still be justified in OLTP workloads with high cache hit rates, where random I/O avoids expensive full table scans. A complicating factor is that prefetching (which benefits sequential and bitmap scans but not index scans) interacts with `random_page_cost` in non-obvious ways, and the current cost model ignores prefetching entirely. Proposed improvements include separating non-I/O costs from `random_page_cost`, better cache statistics, and incorporating prefetching into the cost model.

  8. 8
    Article
    Avatar of supabaseSupabase·9w

    Supabase joins the Stripe Projects developer preview

    Supabase has joined the Stripe Projects developer preview as a co-design partner. Stripe Projects is a new Stripe CLI workflow that lets developers and AI agents provision real services with a single command. Running one command provisions a full Supabase project including Postgres, Auth, Storage, Edge Functions, and Realtime, with credentials automatically written to a local .env file. The integration is deterministic and repeatable, designed to work for both humans and AI agents that cannot interact with browser-based dashboards. Users retain full ownership of their Supabase account and data, and can rotate credentials at any time.

  9. 9
    Article
    Avatar of cybertec_postgresqlCYBERTEC PostgreSQL·9w

    From MD5 to Scram: The next security shift in PostgreSQL

    PostgreSQL 18 deprecates MD5 password encryption by issuing warnings whenever a user is created or altered with MD5-encrypted passwords. A new GUC parameter `md5_password_warnings` (default: on) controls these warnings. MD5 support is expected to be fully removed in a future release. The recommended replacement is scram-sha-256, which has been the default `password_encryption` setting for several versions already.

  10. 10
    Article
    Avatar of laravelLaravel·9w

    Managed Databases Are Now Available in Laravel Forge

    Laravel Forge now offers fully managed PostgreSQL clusters provisioned directly from the Forge dashboard. Features include automated daily backups, point-in-time recovery (7-day window), high availability with 99.95% uptime SLA, read replicas, real-time monitoring, and configurable maintenance windows. Clusters are billed hourly with costs based on compute size, storage, and whether high availability is enabled. Managed databases integrate with existing Forge servers via private networking or optional public access, eliminating the need for separate database provider accounts.

  11. 11
    Article
    Avatar of devtoDEV·9w

    Why I, as Someone Who Likes MySQL, Now Want to Recommend PostgreSQL

    A long-time MySQL user explains why they now recommend PostgreSQL for new projects. The post acknowledges that many historical PostgreSQL weaknesses (VACUUM complexity, DDL operations, replication) have become less relevant in the managed cloud era. It then details concrete application-level advantages PostgreSQL still holds: ON CONFLICT DO NOTHING vs INSERT IGNORE, the RETURNING clause for getting back changed rows, more natural VALUES usage in JOINs and UPDATEs, window functions in update processing via CTEs, partial indexes, deferred foreign key constraints, pgvector support, and simpler character set/collation handling. The conclusion is not that MySQL is bad, but that PostgreSQL offers clearer advantages for application implementation today.

  12. 12
    Article
    Avatar of lnLaravel News·10w

    Model::withoutRelation() in Laravel 12.54.0

    Laravel 12.54.0 ships several new features and bug fixes. The headline addition is Model::withoutRelation(), which clones a model with specific relations removed without mutating the original — useful for serialization, queued jobs, and circular reference handling. Other additions include an interval() method on InteractsWithData for parsing duration inputs into CarbonInterval, improved Response::dump() output that now includes request method, URL, and status code, BinaryFileResponse assertion support in HTTP tests, queue:monitor showing oldest pending job age in standard output, custom CommonMark extensions for mail Markdown rendering, a composite index on the jobs table for better queue polling performance, and native tsvector column type support in the PostgreSQL schema builder. Bug fixes cover queue deadlocks, database migration edge cases, URL validation for punycode subdomains, filesystem permission issues, and a CommonMark security update.

  13. 13
    Article
    Avatar of kgtashohakjtdfa49s0ruAugustus Nguyen·11w

    I built a demo showing how singleflight reduced our database load by 97% during a cache stampede

    A Redis connection blip caused 200 concurrent requests to bypass cache and hit PostgreSQL directly. The solution was the singleflight pattern from golang.org/x/sync/singleflight, which deduplicates concurrent identical requests so only one hits the database. A runnable demo is provided with a full Docker Compose stack including PostgreSQL, Redis, Prometheus, and Grafana, plus a load test script. Results show ~97% cache hit rate with only ~220 DB queries out of ~7,500 total requests.

  14. 14
    Article
    Avatar of freecodecampfreeCodeCamp·8w

    How to Work With Dapper in .Net

    A hands-on guide to using Dapper, a micro-ORM for .NET, to build a Web API backed by PostgreSQL. Covers installation, database seeding, the repository pattern, CRUD operations (query, insert, update, delete), SQL injection protection via parameterisation, batch deletes, transactions, and multi-mapping for JOIN queries. Compares Dapper to Entity Framework, highlighting trade-offs between development speed and execution performance.

  15. 15
    Article
    Avatar of postgresPostgreSQL·11w

    pgdsat version 2.0 has been released

    pgdsat 2.0, an open-source PostgreSQL Database Security Assessment Tool, has been released. It checks around 90 PostgreSQL security controls, including all recommendations from the CIS compliance benchmark. Version 2.0 adds 13 new security checks aligned with the CIS Benchmark for PostgreSQL 17 and includes bug fixes. The tool runs on Linux under the GPLv3 license and is maintained by HexaCluster Corp.

  16. 16
    Article
    Avatar of systemdesigncodexSystem Design Codex·9w

    Inside Look at Reddit's Metadata Store

    Reddit built a unified media metadata store to consolidate scattered metadata from multiple systems into a single AWS Aurora Postgres database. The system handles 100K+ read requests per second with p50 latency of 2.6ms and p99 of 17ms. The migration used dual writes, backfill, and a Kafka-based Change Data Capture pipeline to detect and fix inconsistencies. For future scalability toward an estimated 50TB by 2030, Reddit implemented range-based partitioning using pg_partman and pg_cron, leveraging monotonically increasing post_id values to keep recent partition indexes cached in the buffer pool.

  17. 17
    Article
    Avatar of rubylaRUBYLAND·9w

    From Heroku to Render

    A developer migrates a personal Rails photo-sharing app from Heroku to Render after Heroku announced entering maintenance mode. After a failed attempt with Fly.io due to confusing setup and validation errors, Render proved straightforward: Docker-based deployment via GitHub's container registry, easy PostgreSQL setup with automatic DATABASE_URL linking, a simple database restore using heroku pg:backups and pg_restore, and a smooth DNS cutover. The whole process required minimal manual configuration compared to Heroku's classic git-push workflow, and the author praises Render's UI simplicity compared to AWS.