NetBird 0.82 removed the MySQL engine, and the server stops with the error the MySQL store engine is no longer supported. Roll back to the 0.81.5 image, move the data to PostgreSQL with the netbird-mysql-migrate tool from that same version, because 0.82 no longer ships it, and only then upgrade by pinning the 0.82.0 tag.
The docker.io/bitnami/postgresql:16: not found error appears because Bitnami removed its versioned tags from Docker Hub and only keeps latest. As a stop-gap, switch to bitnamilegacy/postgresql. The real fix is the official postgres image, pointing PGDATA at the Bitnami directory, creating postgresql.conf and pg_hba.conf and refreshing the collation version.
The No vector extension found error appears when Immich v3 starts on the old tensorchord/pgvecto-rs image, because version 3 no longer supports pgvecto.rs. Switch the Postgres image to ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0, let Immich migrate to VectorChord, and you keep smart search and faces.
PostgreSQL 19 adds REPACK, which replaces VACUUM FULL and CLUSTER and, with CONCURRENTLY, compacts a table without blocking writes, plus WAIT FOR LSN for replicas and logical replication of sequences. On Beta 4, a 1895 MB table shrank to 474 MB, and pg_upgrade from 18 required rebuilding a GiST index first.
A reranker rereads the passages pgvector returns and reorders them by relevance. With bge-reranker-v2-m3 served by llama.cpp on CPU, reranking 20 candidates raised nDCG@10 from 0.805 to 0.850 on 300 Spanish MIRACL questions; handing it 50 improved nothing and cost 2.7 times more tokens.
Citus is a Postgres extension that spreads tables across worker nodes while the cluster still looks like a single Postgres server to your application. The coordinator intercepts query planning and distributes the work. Picking the distribution key is the decision that matters most, since every later query inherits its consequences.
The PostgreSQL 17 optimisations that change real query plans sit in the planner and executor, so existing SQL benefits untouched. SAOP scans fold an IN list into a single index pass, worth 30 to 50 percent off p99 latency for 20 to 100 IDs. Streaming I/O cuts cold sequential scans and ANALYZE by 15 to 40 percent.
PostgreSQL 16 closes the historical gaps in logical replication: parallel apply near 2x faster, logical slots served from physical standbys, and the scaffolding for bidirectional replication. The result is a first-line tool for cross-version migrations and CDC pipelines.
This guide installs PostgreSQL 18.6 with pgvector 0.8.7 on Debian or Ubuntu from the PGDG repository, creates a dedicated role and database, tunes memory, builds an HNSW index and checks it with EXPLAIN. Version 0.8.7 fixes CVE-2026-103484, a buffer overflow in IVFFlat index builds.
pgvector matured in 2023-2024 with the HNSW index type and parallel construction that arrived in version 0.6. For projects already running PostgreSQL, a dedicated vector database is not needed in most cases: this guide explains when PostgreSQL is enough, how to configure the index, and where it starts to fall short.
PostgreSQL 16, released in September 2023, adds logical replication from a standby, the pg_stat_io view for breaking down I/O by operation type and context, and parallel FULL OUTER JOIN support. Upgrading from 15 is straightforward; 13 loses support in November 2025, so plan the update soon.
pgvector turns PostgreSQL into a vector database without adding another service to the stack. With version 0.8.6 and PostgreSQL 18, HNSW reached 95.1% recall@10 at 1.15 ms on 99,000 real embeddings. SQL filters share the query with vector ranking, and iterative index scans stop a filter from returning fewer rows than requested.
13 min303
We use first- and third-party cookies to analyze site traffic. You can accept them, reject them, or configure your choice.
Learn more about cookies
Cookie preferences
NecessaryEssential for the site to work. Always on.
AnalyticsHelp us understand how the site is used (Google Analytics).