Jellyfin 11.0.0-PostgreSQL PREVIEW: version bump & defaults

- Update version to 11.0.0-PostgreSQL-PREVIEW in assemblies, installer, and build scripts
- Default web directory is now "wwwroot" across all platforms
- Configuration manager now creates .example files if missing
- Set PostgreSQL as default database with sensible options
- Postgres provider ensures database exists before table checks
- Add docs for marker conflict fixes and startup.json path issues
- Version string in logs/UI uses informational version
- Installer output filename and wizard show PREVIEW suffix
- Documentation summarizes version bump and verification steps
This commit is contained in:
2026-02-27 13:45:09 -05:00
parent d623cd03a9
commit 33d7c010fb
12 changed files with 1214 additions and 47 deletions
@@ -34,6 +34,7 @@ public sealed class PostgresDatabaseProvider : IJellyfinDatabaseProvider
private readonly IConfigurationManager? configurationManager;
private PostgresBackupService? backupService;
private string? currentHost;
private DatabaseConfigurationOptions? databaseConfig;
/// <summary>
/// Initializes a new instance of the <see cref="PostgresDatabaseProvider"/> class.
@@ -93,6 +94,9 @@ public sealed class PostgresDatabaseProvider : IJellyfinDatabaseProvider
/// <inheritdoc/>
public void Initialise(DbContextOptionsBuilder options, DatabaseConfigurationOptions databaseConfiguration)
{
// Store the configuration for later use
databaseConfig = databaseConfiguration;
static T? GetOption<T>(ICollection<CustomDatabaseOption>? options, string key, Func<string, T> converter, Func<T>? defaultValue = null)
{
if (options is null)
@@ -337,6 +341,16 @@ public sealed class PostgresDatabaseProvider : IJellyfinDatabaseProvider
{
try
{
// First ensure the database itself exists
if (databaseConfig is not null)
{
await EnsureDatabaseExistsAsync(databaseConfig, cancellationToken).ConfigureAwait(false);
}
else
{
logger.LogWarning("Database configuration not available. Database existence check skipped.");
}
logger.LogInformation("Checking PostgreSQL database for missing tables...");
var context = await DbContextFactory!.CreateDbContextAsync(cancellationToken).ConfigureAwait(false);