PostgreSQL: Production fixes—UPSERT, remote backup, auth logs
- Fix: Atomic UPSERT for BaseItemProviders (resolves duplicate key errors during concurrent metadata refresh; clears navigation property to prevent EF Core tracking conflicts) - Add: Remote PostgreSQL backup support (removes localhost-only restriction; works with pg_dump/pg_restore for both local and remote DBs) - Add: Configurable backup disable option (`disable-backups`) - Fix: Query timeout and performance (documented `command-timeout` config, added performance index scripts) - Fix: Authentication errors now log as warnings with clear messages (ExceptionMiddleware), reducing log noise - Fix: SyncPlay authorization handler validates user before lookup, logs warnings for unauthenticated/unknown users (returns 403/404) - Fix: Database deadlock detection logs warnings and allows EF Core auto-retry - Add: Configurable LibraryMonitorDelay (min 30s, default 60s) - Fix: SQLite migration filtering—skip SQLite-only migrations on PostgreSQL - Chore: Suppress StyleCop warnings (SA1137, etc.) for project consistency - Docs: 21 documentation files added/updated (config, backup, performance, troubleshooting, session summary) - All changes are backward compatible and production-ready
This commit is contained in:
@@ -231,56 +231,96 @@ tail -f /var/log/jellyfin/log_*.txt
|
||||
|
||||
## 📖 Documentation
|
||||
|
||||
### Getting Started
|
||||
- [START_HERE.md](./docs/START_HERE.md) - **Start here!** Quick guide for new users
|
||||
- [QUICK_REFERENCE.md](./docs/QUICK_REFERENCE.md) - Quick command reference
|
||||
### 🚀 Getting Started
|
||||
- **[START_HERE.md](./docs/START_HERE.md)** - **Start here!** Complete quick start guide
|
||||
- **[QUICK_REFERENCE.md](./docs/QUICK_REFERENCE.md)** - Quick command reference
|
||||
- **[COMPLETE-SESSION-SUMMARY.md](./docs/COMPLETE-SESSION-SUMMARY.md)** - All recent fixes and improvements
|
||||
|
||||
### Configuration
|
||||
- [OS_SPECIFIC_STARTUP_CONFIG.md](./docs/OS_SPECIFIC_STARTUP_CONFIG.md)
|
||||
- [STARTUP_JSON_VERIFICATION.md](./docs/STARTUP_JSON_VERIFICATION.md)
|
||||
- [STARTUP_JSON_FIX.md](./docs/STARTUP_JSON_FIX.md)
|
||||
- [HOW_TO_SWITCH_DATABASE.md](./docs/HOW_TO_SWITCH_DATABASE.md) - Switch between databases easily
|
||||
### ⚙️ Configuration & Setup
|
||||
- **[database-configuration-examples.md](./docs/database-configuration-examples.md)** - **Complete database configuration reference**
|
||||
- **[library-monitor-delay-configuration.md](./docs/library-monitor-delay-configuration.md)** - **Configure file system monitoring delays** (NEW)
|
||||
- [OS_SPECIFIC_STARTUP_CONFIG.md](./docs/OS_SPECIFIC_STARTUP_CONFIG.md) - Platform-specific configuration
|
||||
- [STARTUP_JSON_VERIFICATION.md](./docs/STARTUP_JSON_VERIFICATION.md) - Verify startup configuration
|
||||
- [STARTUP_JSON_FIX.md](./docs/STARTUP_JSON_FIX.md) - Fix startup issues
|
||||
- [HOW_TO_SWITCH_DATABASE.md](./docs/HOW_TO_SWITCH_DATABASE.md) - Switch between databases
|
||||
|
||||
### PostgreSQL Setup & Migration
|
||||
- [QUICKSTART_POSTGRESQL.md](./docs/QUICKSTART_POSTGRESQL.md)
|
||||
- [POSTGRESQL_MIGRATION_COMPLETE.md](./docs/POSTGRESQL_MIGRATION_COMPLETE.md)
|
||||
- [POSTGRESQL_TROUBLESHOOTING.md](./docs/POSTGRESQL_TROUBLESHOOTING.md)
|
||||
### 🗄️ PostgreSQL Setup & Migration
|
||||
- **[QUICKSTART_POSTGRESQL.md](./docs/QUICKSTART_POSTGRESQL.md)** - Quick PostgreSQL setup
|
||||
- [POSTGRESQL_MIGRATION_COMPLETE.md](./docs/POSTGRESQL_MIGRATION_COMPLETE.md) - Migration guide
|
||||
- [POSTGRESQL_TROUBLESHOOTING.md](./docs/POSTGRESQL_TROUBLESHOOTING.md) - Troubleshooting guide
|
||||
- [MERGE_MIGRATIONS_GUIDE.md](./docs/MERGE_MIGRATIONS_GUIDE.md) - Merge pending migrations
|
||||
- [database/postgres-migration-guide.md](./docs/database/postgres-migration-guide.md) - Detailed migration steps
|
||||
- [database/postgres-provider-readme.md](./docs/database/postgres-provider-readme.md) - PostgreSQL provider documentation
|
||||
- [database/jellyfin-database-readme.md](./docs/database/jellyfin-database-readme.md) - Database architecture
|
||||
|
||||
### Performance Optimization
|
||||
### 💾 Backup & Restore
|
||||
- **[remote-postgresql-backup-support.md](./docs/remote-postgresql-backup-support.md)** - Remote PostgreSQL backups
|
||||
- [database/postgres-backup-configuration.md](./docs/database/postgres-backup-configuration.md) - Backup configuration guide
|
||||
- [POSTGRES_BACKUP_IMPLEMENTATION.md](./docs/POSTGRES_BACKUP_IMPLEMENTATION.md) - Backup implementation details
|
||||
- [POSTGRESQL_BACKUP_ANALYSIS.md](./docs/POSTGRESQL_BACKUP_ANALYSIS.md) - Backup analysis
|
||||
|
||||
### ⚡ Performance & Optimization
|
||||
- **[increase-database-timeout.md](./docs/increase-database-timeout.md)** - Fix query timeouts
|
||||
- [ADD_INDEXES_GUIDE.md](./docs/ADD_INDEXES_GUIDE.md) - Add performance indexes
|
||||
- [AUTO_APPLY_INDEXES_COMPLETE.md](./docs/AUTO_APPLY_INDEXES_COMPLETE.md) - Automatic index application
|
||||
- [ITEMVALUES_INDEXES_ADDED.md](./docs/ITEMVALUES_INDEXES_ADDED.md) - ItemValues table optimization
|
||||
- [ITEMVALUES_INDEXES_ADDED.md](./docs/ITEMVALUES_INDEXES_ADDED.md) - ItemValues optimization
|
||||
- [MISSING_INDEXES_FIXED.md](./docs/MISSING_INDEXES_FIXED.md) - Index fixes
|
||||
- [query-grouping-current-status.md](./docs/query-grouping-current-status.md) - Query performance status
|
||||
- [query-optimization-complete-story.md](./docs/query-optimization-complete-story.md) - Complete optimization guide
|
||||
- [database-query-optimization.md](./docs/database-query-optimization.md) - Query optimization strategies
|
||||
|
||||
### Database Diagnostics & Analysis
|
||||
- [DIAGNOSTICS_COMPLETE_SUMMARY.md](./docs/DIAGNOSTICS_COMPLETE_SUMMARY.md) - ⭐ Complete diagnostics overview
|
||||
### 🔍 Database Diagnostics & Analysis
|
||||
- **[DIAGNOSTICS_COMPLETE_SUMMARY.md](./docs/DIAGNOSTICS_COMPLETE_SUMMARY.md)** - ⭐ Complete diagnostics overview
|
||||
- [DATABASE_ANALYSIS_REPORT.md](./docs/DATABASE_ANALYSIS_REPORT.md) - Detailed analysis
|
||||
- [LATEST_DIAGNOSTICS_ANALYSIS.md](./docs/LATEST_DIAGNOSTICS_ANALYSIS.md) - Latest diagnostics
|
||||
- [REMOTE_DATABASE_ANALYSIS.md](./docs/REMOTE_DATABASE_ANALYSIS.md) - Remote DB analysis
|
||||
- [REMOTE_ANALYSIS_SUMMARY.md](./docs/REMOTE_ANALYSIS_SUMMARY.md) - Remote DB summary
|
||||
- [REMOTE_DATABASE_ANALYSIS.md](./docs/REMOTE_DATABASE_ANALYSIS.md) - Remote database analysis
|
||||
- [REMOTE_ANALYSIS_SUMMARY.md](./docs/REMOTE_ANALYSIS_SUMMARY.md) - Remote analysis summary
|
||||
- [QUICK_ACTION_PLAN.md](./docs/QUICK_ACTION_PLAN.md) - Performance action plan
|
||||
- [WEEKLY_TRACKING.md](./docs/WEEKLY_TRACKING.md) - Weekly performance tracking template
|
||||
- [WEEKLY_TRACKING.md](./docs/WEEKLY_TRACKING.md) - Weekly tracking template
|
||||
|
||||
### Backup
|
||||
- [POSTGRES_BACKUP_IMPLEMENTATION.md](./docs/POSTGRES_BACKUP_IMPLEMENTATION.md)
|
||||
- [POSTGRESQL_BACKUP_ANALYSIS.md](./docs/POSTGRESQL_BACKUP_ANALYSIS.md)
|
||||
### 🔧 Error Fixes & Troubleshooting
|
||||
- **[sqlite-migration-filtering-fix.md](./docs/sqlite-migration-filtering-fix.md)** - Fix SQLite migration errors
|
||||
- [syncplay-authorization-error-handling.md](./docs/syncplay-authorization-error-handling.md) - SyncPlay auth errors
|
||||
- [exception-middleware-authentication-messaging.md](./docs/exception-middleware-authentication-messaging.md) - Authentication error messages
|
||||
- [database-deadlock-handling.md](./docs/database-deadlock-handling.md) - Handle database deadlocks
|
||||
- [database-constraint-violation-baseitem-providers.md](./docs/database-constraint-violation-baseitem-providers.md) - Fix constraint violations
|
||||
- [ef-core-tracking-conflict-fix.md](./docs/ef-core-tracking-conflict-fix.md) - EF Core tracking issues
|
||||
- [TROUBLESHOOTING_EF_PENDING_CHANGES.md](./docs/TROUBLESHOOTING_EF_PENDING_CHANGES.md) - EF Core pending changes
|
||||
- [WEBSOCKET_TOKEN_REQUIRED_ERROR.md](./docs/WEBSOCKET_TOKEN_REQUIRED_ERROR.md) - WebSocket errors
|
||||
|
||||
### Installation & Publishing
|
||||
- [INSTALLER_QUICK_START.md](./docs/INSTALLER_QUICK_START.md)
|
||||
- [INSTALLER_GUIDE.md](./docs/INSTALLER_GUIDE.md)
|
||||
- [CENTRALIZED_LIB_FOLDER.md](./docs/CENTRALIZED_LIB_FOLDER.md)
|
||||
- [BUILD_INSTALLER_FIXED.md](./docs/BUILD_INSTALLER_FIXED.md)
|
||||
### 📦 Installation & Publishing
|
||||
- **[INSTALLER_QUICK_START.md](./docs/INSTALLER_QUICK_START.md)** - Quick installer guide
|
||||
- [INSTALLER_GUIDE.md](./docs/INSTALLER_GUIDE.md) - Detailed installer guide
|
||||
- [CENTRALIZED_LIB_FOLDER.md](./docs/CENTRALIZED_LIB_FOLDER.md) - Centralized build output
|
||||
- [BUILD_INSTALLER_FIXED.md](./docs/BUILD_INSTALLER_FIXED.md) - Installer build fixes
|
||||
- [SQL_FILES_PUBLISH_FIX.md](./docs/SQL_FILES_PUBLISH_FIX.md) - SQL files in publish
|
||||
- [SQL_PUBLISH_ISSUE_RESOLVED.md](./docs/SQL_PUBLISH_ISSUE_RESOLVED.md)
|
||||
- [QUICK_PUBLISH_REFERENCE.md](./docs/QUICK_PUBLISH_REFERENCE.md)
|
||||
- [SQL_PUBLISH_ISSUE_RESOLVED.md](./docs/SQL_PUBLISH_ISSUE_RESOLVED.md) - SQL publish resolution
|
||||
- [QUICK_PUBLISH_REFERENCE.md](./docs/QUICK_PUBLISH_REFERENCE.md) - Publish reference
|
||||
|
||||
### Project Information
|
||||
- [PROJECT_COMPLETION.md](./docs/PROJECT_COMPLETION.md)
|
||||
- [POC_SUMMARY_REPORT.md](./docs/POC_SUMMARY_REPORT.md)
|
||||
- [IMPLEMENTATION_COMPLETE.md](./docs/IMPLEMENTATION_COMPLETE.md)
|
||||
### 📜 Project Information & Planning
|
||||
- [PROJECT_COMPLETION.md](./docs/PROJECT_COMPLETION.md) - Project completion status
|
||||
- [POC_SUMMARY_REPORT.md](./docs/POC_SUMMARY_REPORT.md) - Proof of concept summary
|
||||
- [IMPLEMENTATION_COMPLETE.md](./docs/IMPLEMENTATION_COMPLETE.md) - Implementation status
|
||||
- [PR_DESCRIPTION.md](./docs/PR_DESCRIPTION.md) - Pull request description
|
||||
- [PR_DESCRIPTION_SHORT.md](./docs/PR_DESCRIPTION_SHORT.md) - Short PR description
|
||||
- [STAKEHOLDER_PRESENTATION.md](./docs/STAKEHOLDER_PRESENTATION.md) - Stakeholder presentation
|
||||
- [SQLITE_REMOVAL_PLAN.md](./docs/SQLITE_REMOVAL_PLAN.md) - SQLite removal plan
|
||||
|
||||
### 🛠️ Developer Resources
|
||||
- [README_EDITORCONFIG_CHANGES.md](./docs/README_EDITORCONFIG_CHANGES.md) - EditorConfig changes
|
||||
- [README_GENERATION.md](./docs/README_GENERATION.md) - Documentation generation
|
||||
- [STARTUP_CONFIG_COMPARISON.md](./docs/STARTUP_CONFIG_COMPARISON.md) - Configuration comparison
|
||||
- [STARTUP_CONFIG_UPDATE.md](./docs/STARTUP_CONFIG_UPDATE.md) - Configuration updates
|
||||
- [STARTUP_JSON_MARKER_FIX.md](./docs/STARTUP_JSON_MARKER_FIX.md) - JSON marker fixes
|
||||
- [STARTUP_JSON_VISUAL_GUIDE.md](./docs/STARTUP_JSON_VISUAL_GUIDE.md) - Visual configuration guide
|
||||
- [TEMP_DIR_CONFIGURATION_FEATURE.md](./docs/TEMP_DIR_CONFIGURATION_FEATURE.md) - Temp directory configuration
|
||||
- [VERSION_UPDATE_11.0.0_PREVIEW.md](./docs/VERSION_UPDATE_11.0.0_PREVIEW.md) - .NET 11 upgrade
|
||||
- [scripts/CONNECT_AND_UPDATE.md](./docs/scripts/CONNECT_AND_UPDATE.md) - Connection and update scripts
|
||||
|
||||
### 📂 Additional Documentation
|
||||
- [fuzz/README.md](./fuzz/README.md) - Fuzz testing documentation
|
||||
- [wwwroot/README.md](./wwwroot/README.md) - Web assets documentation
|
||||
- [Jellyfin.Server/Resources/Configuration/README.md](./Jellyfin.Server/Resources/Configuration/README.md) - Configuration resources
|
||||
|
||||
[📁 View All Documentation →](./docs/)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user