[PR #15383] [CLOSED] Postgresql Database Provider Integration. #14296

Closed
opened 2026-02-07 07:27:31 +03:00 by OVERLORD · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/jellyfin/jellyfin/pull/15383
Author: @celesrenata
Created: 11/4/2025
Status: Closed

Base: masterHead: postgresql


📝 Commits (10+)

  • be1f0f7 feat: Implement PostgreSQL Provider Phase 1 Infrastructure
  • 1705d7c feat: Implement PostgreSQL Provider Phase 2 - Migration System
  • 82db076 fix: SQL Server bracket syntax in PostgreSQL migration + integration test
  • c332224 feat: Add PostgreSQL database provider support
  • 093b3d3 ci: Add Docker build workflow with multi-arch support
  • 2dc3b02 feat: Add web UI support to Dockerfile
  • 6fa6bec feat: Build web UI from source in Dockerfile
  • 58c7a7d ci: Add postgresql branch to workflow triggers
  • b0dc0b1 Add Helm chart and fix workflow attestation
  • 4f78e9d Trigger workflow

📊 Changes

43 files changed (+9717 additions, -27 deletions)

View changed files

📝 .dockerignore (+51 -10)
.github/workflows/docker-build.yml (+167 -0)
.github/workflows/helm-chart-build.yml (+141 -0)
BUILDING.md (+18 -0)
📝 Directory.Packages.props (+2 -1)
Dockerfile (+105 -0)
📝 Jellyfin.Server.Implementations/Extensions/ServiceCollectionExtensions.cs (+2 -0)
📝 Jellyfin.Server.Implementations/Jellyfin.Server.Implementations.csproj (+1 -0)
📝 README.md (+16 -16)
context/MASTER-PLAN.md (+312 -0)
context/phase-1-infrastructure/README.md (+259 -0)
context/phase-1-infrastructure/backup-restore-implementation.md (+651 -0)
context/phase-1-infrastructure/connection-string-builder.md (+430 -0)
context/phase-1-infrastructure/purge-database-implementation.md (+464 -0)
context/phase-2-migrations/validation-report.md (+203 -0)
docker-compose.test.yml (+23 -0)
docker-compose.yml (+71 -0)
helm/clusterjellyfin/.helmignore (+27 -0)
helm/clusterjellyfin/Chart.lock (+6 -0)
helm/clusterjellyfin/Chart.yaml (+23 -0)

...and 23 more files

📄 Description

Add PostgreSQL Database Provider with Docker and Kubernetes Support

Changes
Add comprehensive PostgreSQL database provider implementation including Entity Framework migrations, Docker containerization, and Kubernetes deployment via Helm charts. This enables Jellyfin to use PostgreSQL as an
alternative to SQLite for improved performance and scalability in production environments.

Key additions:
• Complete PostgreSQL provider with EF Core migrations and connection management
• Multi-architecture Docker images with PostgreSQL integration and web UI built from source
• Kubernetes Helm chart with PostgreSQL dependency and distributed transcoding worker support
• CI/CD workflows for automated Docker builds and Helm chart packaging
• Docker Compose setup for local development and testing

Issues
Fixes #12289 - Addresses SQLite database corruption issues and provides the PostgreSQL alternative that users have been requesting for improved reliability and flexibility in advanced deployments.

Additionally resolves:
• SQLite concurrency limitations and "database locked" errors under high load
• Performance bottlenecks from SQLite's single-writer architecture
• Database fragility issues during crashes or full disk scenarios
• Limited scalability options for enterprise and containerized deployments

The implementation leverages the EFCore refactor completed in v10.11.0 that introduced the IJellyfinDatabaseProvider abstraction, making multi-database support architecturally possible.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/jellyfin/jellyfin/pull/15383 **Author:** [@celesrenata](https://github.com/celesrenata) **Created:** 11/4/2025 **Status:** ❌ Closed **Base:** `master` ← **Head:** `postgresql` --- ### 📝 Commits (10+) - [`be1f0f7`](https://github.com/jellyfin/jellyfin/commit/be1f0f76613f2af43152403268a8e8d2dafcb001) feat: Implement PostgreSQL Provider Phase 1 Infrastructure - [`1705d7c`](https://github.com/jellyfin/jellyfin/commit/1705d7c6bd6d68312ce6e36148bc0f9ac21f9180) feat: Implement PostgreSQL Provider Phase 2 - Migration System - [`82db076`](https://github.com/jellyfin/jellyfin/commit/82db076f399fff05e8a8120607b38510f2060678) fix: SQL Server bracket syntax in PostgreSQL migration + integration test - [`c332224`](https://github.com/jellyfin/jellyfin/commit/c3322240699ac60cba14d6cadeb26be57c3f2d1f) feat: Add PostgreSQL database provider support - [`093b3d3`](https://github.com/jellyfin/jellyfin/commit/093b3d3c3cfb1d9c0e91dcb1ad6d4fe7ab716cd2) ci: Add Docker build workflow with multi-arch support - [`2dc3b02`](https://github.com/jellyfin/jellyfin/commit/2dc3b02b0be043867d6e24a25cc42191804ac86d) feat: Add web UI support to Dockerfile - [`6fa6bec`](https://github.com/jellyfin/jellyfin/commit/6fa6bec4583ebe9554d9db82251c6a0ccd21d142) feat: Build web UI from source in Dockerfile - [`58c7a7d`](https://github.com/jellyfin/jellyfin/commit/58c7a7d029ca7e32f93bdfed98fa7810cb776179) ci: Add postgresql branch to workflow triggers - [`b0dc0b1`](https://github.com/jellyfin/jellyfin/commit/b0dc0b11aaf92ead021876ca9f719c6f564dc329) Add Helm chart and fix workflow attestation - [`4f78e9d`](https://github.com/jellyfin/jellyfin/commit/4f78e9df88b3bb89686afa468fc97b3ed16cc1b8) Trigger workflow ### 📊 Changes **43 files changed** (+9717 additions, -27 deletions) <details> <summary>View changed files</summary> 📝 `.dockerignore` (+51 -10) ➕ `.github/workflows/docker-build.yml` (+167 -0) ➕ `.github/workflows/helm-chart-build.yml` (+141 -0) ➕ `BUILDING.md` (+18 -0) 📝 `Directory.Packages.props` (+2 -1) ➕ `Dockerfile` (+105 -0) 📝 `Jellyfin.Server.Implementations/Extensions/ServiceCollectionExtensions.cs` (+2 -0) 📝 `Jellyfin.Server.Implementations/Jellyfin.Server.Implementations.csproj` (+1 -0) 📝 `README.md` (+16 -16) ➕ `context/MASTER-PLAN.md` (+312 -0) ➕ `context/phase-1-infrastructure/README.md` (+259 -0) ➕ `context/phase-1-infrastructure/backup-restore-implementation.md` (+651 -0) ➕ `context/phase-1-infrastructure/connection-string-builder.md` (+430 -0) ➕ `context/phase-1-infrastructure/purge-database-implementation.md` (+464 -0) ➕ `context/phase-2-migrations/validation-report.md` (+203 -0) ➕ `docker-compose.test.yml` (+23 -0) ➕ `docker-compose.yml` (+71 -0) ➕ `helm/clusterjellyfin/.helmignore` (+27 -0) ➕ `helm/clusterjellyfin/Chart.lock` (+6 -0) ➕ `helm/clusterjellyfin/Chart.yaml` (+23 -0) _...and 23 more files_ </details> ### 📄 Description ## **Add PostgreSQL Database Provider with Docker and Kubernetes Support** Changes Add comprehensive PostgreSQL database provider implementation including Entity Framework migrations, Docker containerization, and Kubernetes deployment via Helm charts. This enables Jellyfin to use PostgreSQL as an alternative to SQLite for improved performance and scalability in production environments. Key additions: • Complete PostgreSQL provider with EF Core migrations and connection management • Multi-architecture Docker images with PostgreSQL integration and web UI built from source • Kubernetes Helm chart with PostgreSQL dependency and distributed transcoding worker support • CI/CD workflows for automated Docker builds and Helm chart packaging • Docker Compose setup for local development and testing Issues Fixes #12289 - Addresses SQLite database corruption issues and provides the PostgreSQL alternative that users have been requesting for improved reliability and flexibility in advanced deployments. Additionally resolves: • SQLite concurrency limitations and "database locked" errors under high load • Performance bottlenecks from SQLite's single-writer architecture • Database fragility issues during crashes or full disk scenarios • Limited scalability options for enterprise and containerized deployments The implementation leverages the EFCore refactor completed in v10.11.0 that introduced the IJellyfinDatabaseProvider abstraction, making multi-database support architecturally possible. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
OVERLORD added the pull-request label 2026-02-07 07:27:31 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/jellyfin#14296