Commit Graph

156 Commits

Author SHA1 Message Date
wjones 315b7e0bd0 fix: ensure UTC date handling for Live TV extras in database insert 2026-05-04 13:57:32 -04:00
wjones 4ccd84342b feat: implement migration tracking and history management for PostgreSQL 2026-05-04 12:47:12 -04:00
wjones e67c191843 Add comprehensive documentation for PostgreSQL schema conversion
- Introduced DATABASE_SCHEMA_MISMATCH_REPORT.md to detail critical mismatches between SQL schema and C# code configurations, highlighting issues with naming conventions and potential runtime failures.
- Created SCHEMA_COLUMN_CONVERSION_REFERENCE.md to provide a reference for column name conversions from PascalCase to snake_case across all tables.
- Developed SCHEMA_CONVERSION_GUIDE.md outlining the conversion strategy for the SQL schema, including authoritative table mappings, column naming rules, and a validation checklist to ensure accuracy in the conversion process.
2026-05-04 10:16:17 -04:00
wjones 3e5d29225a Refactor SQLite Database Provider
- Removed unused classes and files related to SQLite database provider, including SqliteDesignTimeJellyfinDbFactory, ModelBuilderExtensions, PragmaConnectionInterceptor, AssemblyInfo, SqliteDatabaseProvider, DateTimeKindValueConverter.
- Updated tests to remove dependencies on removed classes and adjusted mocking for configuration sections.
- Added Microsoft.EntityFrameworkCore.Sqlite package reference to test project.
- Improved string handling in tests for better consistency and clarity.
- Refactored logging methods in JellyfinApplicationFactory for better readability and maintainability.
2026-05-03 09:39:00 -04:00
wjones e1f7a4bee9 Refactor database configuration and migrations for PostgreSQL support
- Updated default database configuration to use PostgreSQL instead of SQLite when no database.xml exists.
- Removed obsolete migration routines: MigrateUserDb, RemoveDuplicateExtras, ReseedFolderFlag.
- Introduced new read-only view projections for PostgreSQL: ItemPersonView, ItemProviderView, LibrarySummaryView, MediaStreamInfoView, UserPlaybackHistoryView, VideoItemView.
- Registered view mappings in PostgresDatabaseProvider to ensure proper handling of read-only views.
- Cleaned up unused SQLite cache size configuration in ConfigurationExtensions.

Co-authored-by: Copilot <copilot@github.com>
2026-04-30 18:47:48 -04:00
wjones 9fc10226c9 feat: implement migration to split MediaStreamInfos into AudioStreamDetails and VideoStreamDetails 2026-04-30 17:48:49 -04:00
wjones 57d6342524 Optimize PostgreSQL dead tuple handling for media scans
Introduce bulk operation extensions and transaction helpers for efficient, batched EF Core operations. Refactor MediaStreamInfo schema by splitting audio/video details into dedicated tables, reducing table bloat and improving update performance. Add migration for data movement and schema changes. Update EF Core models and context for new structure. Enhance PostgreSQL provider configuration and add comprehensive documentation and monitoring guides. Includes minor middleware and code cleanups.
2026-04-30 15:52:37 -04:00
wjones 6d5282208b Merge branch 'development' of https://gitea.wpjones.com/wjones/pgsql-jellyfin into development 2026-04-30 13:28:18 -04:00
wjones f246d2ad39 update create database schema sql file 2026-04-30 13:28:09 -04:00
wjones 189c7edcf6 Merge pull request 'WebSocket Token Authentication' (#5) from feature/websocket-token-auth into development
Reviewed-on: #5
2026-04-30 16:49:53 +00:00
wjones 4ba580a761 feat: WebSocket token authentication via api_key query parameter 2026-04-30 12:42:50 -04:00
wjones e81c127514 Add JSON config, DB-backed library options, and docs
- Add JSON-based config loading with XML fallback for DB and library options
- Implement LibraryOptionsRepository with EF Core, migrations, and entity
- Update CollectionFolder to use DB-backed options with XML fallback/backfill
- Register repository in DI and initialize at startup
- Use EF execution strategy for transactional DB operations
- Suppress code analysis warnings in .csproj and test files
- Add DATABASE_MIGRATION.md, LIBRARY_OPTIONS_DB_DESIGN.md, and WEBSOCKET_AUTHENTICATION.md
- Add database.json.example and improve migration docs
- Add tests for JSON config loader and update test naming warnings
2026-04-30 12:25:24 -04:00
wjones bad167656a Reduce log noise for WebSocket authentication failures - downgrade to Debug level 2026-04-29 08:30:54 -04:00
wjones 786c61ba09 Fix 12 code analysis errors in MediaEncoding projects - use LoggerMessage source generators and specific exception types 2026-04-29 08:24:34 -04:00
wjones aead802df6 Add troubleshooting section for 57P01 connection termination errors 2026-04-29 08:13:31 -04:00
wjones dd7c38fb5d Add EnableRetryOnFailure to handle transient connection failures (57P01 terminating connection) 2026-04-29 08:12:44 -04:00
wjones bb309a5120 Delete .github/upgrades/scenarios/new-dotnet-version_02bc64/assessment.csv 2026-04-13 19:19:34 +00:00
wjones 96c85f95c5 Delete .github/upgrades/scenarios/new-dotnet-version_02bc64/assessment.json 2026-04-13 19:19:26 +00:00
wjones 254569237d Delete .github/upgrades/scenarios/new-dotnet-version_02bc64/assessment.md 2026-04-13 19:19:17 +00:00
wjones c5d1033680 Delete .github/upgrades/scenarios/new-dotnet-version_02bc64/execution-log.md 2026-04-13 19:19:07 +00:00
wjones 41368c2dbc Delete .github/upgrades/scenarios/new-dotnet-version_02bc64/plan.md 2026-04-13 19:18:59 +00:00
wjones 35923c59e0 Delete .github/upgrades/scenarios/new-dotnet-version_02bc64/Risk Management Strategies.md 2026-04-13 19:18:52 +00:00
wjones 35a3634c34 Delete .github/upgrades/scenarios/new-dotnet-version_02bc64/scenario.json 2026-04-13 19:18:42 +00:00
wjones 2d68b4fda0 Delete .github/upgrades/scenarios/new-dotnet-version_02bc64/tasks.md 2026-04-13 19:18:33 +00:00
wjones 8e62b84a31 Delete .idea/.idea.Jellyfin/.idea/encodings.xml 2026-04-13 19:15:29 +00:00
wjones f8f407c8bd Merge pull request 'update ignore file' (#3) from pgsql_testing_branch into main
Reviewed-on: #3
2026-04-13 19:14:26 +00:00
wjones 613d499fab commit ignore file 2026-04-13 15:13:38 -04:00
wjones 769f2a804a commit gitignore 2026-04-13 15:12:48 -04:00
wjones ee2aa8c13c Merge pull request 'Add placeholder item handling and related unit test for deletion' (#2) from pgsql_testing_branch into main
Reviewed-on: #2
2026-04-13 19:10:24 +00:00
wjones 945226050f Merge pull request 'PostgreSQL: replace EF migrations with SQL-first initialization, fix connection handling, and update setup docs' (#1) from upgrade-to-NET11 into main
Reviewed-on: #1
2026-04-13 19:07:14 +00:00
wjones 41e8477673 Refactor code structure for improved readability and maintainability 2026-04-13 14:57:37 -04:00
wjones eccb1359c8 Add placeholder item handling and related unit test for deletion 2026-04-13 11:01:59 -04:00
wjones 45dc885cd5 Update publish profile to Linux x64; refresh scenario time
Changed the last used publish profile in Jellyfin.Server.csproj.user from Windows x64 to Linux x64. Also updated the lastUpdateTime in scenario.json to reflect recent activity.
2026-03-10 17:08:43 -04:00
wjones 73d3c0f733 Add jellyfin-ffmpeg requirements and recommendations to README 2026-03-10 14:54:05 -04:00
wjones 2183ed4d63 Add comprehensive README with Linux dependencies and PostgreSQL configuration guide 2026-03-10 14:20:16 -04:00
wjones e6e7c49888 Fix EnsureDatabaseExistsAsync to respect ConnectionString from configuration - was still using localhost default 2026-03-10 13:47:50 -04:00
wjones 7deb7c1432 Fix SA1513 StyleCop error - add blank line after closing brace 2026-03-10 13:01:12 -04:00
wjones 077f10a4af Fix connection configuration - respect ConnectionString and individual options from database.xml 2026-03-10 12:55:49 -04:00
wjones a872ebc640 commit 2026-03-09 15:24:01 -04:00
wjones 43e866f446 Add schema directories to gitignore - ignore database dumps recursively 2026-03-09 15:16:06 -04:00
wjones e790f84ace Re-enable database creation check to prevent crash when database doesn't exist 2026-03-08 11:31:08 -04:00
wjones caa30d8b88 Remove CREATE DATABASE from schema script - database already created via config 2026-03-08 11:27:30 -04:00
wjones bb9329736f Fix password masking error - password not in args anyway 2026-03-08 11:19:28 -04:00
wjones d4426fe0f6 Use psql subprocess to execute schema script - handles psql meta-commands 2026-03-08 11:13:39 -04:00
wjones 7657caa960 Fix database initialization detection - check for TABLES not just schemas 2026-03-08 11:07:16 -04:00
wjones ac1c2c6c82 CRITICAL FIX: Also disable database migrations in JellyfinMigrationService - was running InitialCreate 2026-03-08 10:50:00 -04:00
wjones 2209f0e1c0 COMPLETE REWRITE: Remove ALL migration code, implement pure SQL script initialization 2026-03-07 13:29:23 -05:00
wjones 7e2c08499b Document automatic empty database initialization feature 2026-03-07 13:08:28 -05:00
wjones 75acefe989 Add automatic SQL script execution for empty database initialization 2026-03-07 13:07:44 -05:00
wjones c4127e7749 Update README paths and disable EnsureCreatedAsync to prevent automatic schema creation 2026-03-07 13:03:10 -05:00