Rationale

GitLab mandates PostgreSQL as the primary OLTP database and enforces standards for database usage, partitioning, and migrations.

Requirements

  1. Use PostgreSQL as primary database (no other OLTP databases)
  2. All database changes must go through migration files
  3. Migrations must be backward-compatible
  4. Large tables must be partitioned
  5. Indexes must be added concurrently
  6. No direct SQL in application code — use ORM or query builder

Database Standards

Standard Requirement
Engine PostgreSQL only
Migrations Backward-compatible, reversible
Partitioning Tables > 10M rows
Indexes Concurrent creation, no locks
Queries No N+1, use includes/preload
Connections Pool-based, max 20 per process

References