Backport pull request #15212 from jellyfin/release-10.11.z
Skip invalid database migration
Original-merge: 2966d27c97
Merged-by: crobibero <cody@robibe.ro>
Backported-by: Bond_009 <bond.009@outlook.com>
This commit is contained in:
@@ -55,9 +55,25 @@ namespace Jellyfin.Server.Migrations.Routines
|
|||||||
};
|
};
|
||||||
|
|
||||||
var dataPath = _paths.DataPath;
|
var dataPath = _paths.DataPath;
|
||||||
using (var connection = new SqliteConnection($"Filename={Path.Combine(dataPath, DbFilename)}"))
|
var activityLogPath = Path.Combine(dataPath, DbFilename);
|
||||||
|
if (!File.Exists(activityLogPath))
|
||||||
|
{
|
||||||
|
_logger.LogWarning("{ActivityLogDb} doesn't exist, nothing to migrate", activityLogPath);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
using (var connection = new SqliteConnection($"Filename={activityLogPath}"))
|
||||||
{
|
{
|
||||||
connection.Open();
|
connection.Open();
|
||||||
|
var tableQuery = connection.Query("SELECT count(*) FROM sqlite_master WHERE type='table' AND name='ActivityLog';");
|
||||||
|
foreach (var row in tableQuery)
|
||||||
|
{
|
||||||
|
if (row.GetInt32(0) == 0)
|
||||||
|
{
|
||||||
|
_logger.LogWarning("Table 'ActivityLog' doesn't exist in {ActivityLogPath}, nothing to migrate", activityLogPath);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
using var userDbConnection = new SqliteConnection($"Filename={Path.Combine(dataPath, "users.db")}");
|
using var userDbConnection = new SqliteConnection($"Filename={Path.Combine(dataPath, "users.db")}");
|
||||||
userDbConnection.Open();
|
userDbConnection.Open();
|
||||||
|
|||||||
@@ -57,11 +57,28 @@ public class MigrateUserDb : IMigrationRoutine
|
|||||||
public void Perform()
|
public void Perform()
|
||||||
{
|
{
|
||||||
var dataPath = _paths.DataPath;
|
var dataPath = _paths.DataPath;
|
||||||
|
var userDbPath = Path.Combine(dataPath, DbFilename);
|
||||||
|
if (!File.Exists(userDbPath))
|
||||||
|
{
|
||||||
|
_logger.LogWarning("{UserDbPath} doesn't exist, nothing to migrate", userDbPath);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
_logger.LogInformation("Migrating the user database may take a while, do not stop Jellyfin.");
|
_logger.LogInformation("Migrating the user database may take a while, do not stop Jellyfin.");
|
||||||
|
|
||||||
using (var connection = new SqliteConnection($"Filename={Path.Combine(dataPath, DbFilename)}"))
|
using (var connection = new SqliteConnection($"Filename={userDbPath}"))
|
||||||
{
|
{
|
||||||
connection.Open();
|
connection.Open();
|
||||||
|
var tableQuery = connection.Query("SELECT count(*) FROM sqlite_master WHERE type='table' AND name='LocalUsersv2';");
|
||||||
|
foreach (var row in tableQuery)
|
||||||
|
{
|
||||||
|
if (row.GetInt32(0) == 0)
|
||||||
|
{
|
||||||
|
_logger.LogWarning("Table 'LocalUsersv2' doesn't exist in {UserDbPath}, nothing to migrate", userDbPath);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
using var dbContext = _provider.CreateDbContext();
|
using var dbContext = _provider.CreateDbContext();
|
||||||
|
|
||||||
var queryResult = connection.Query("SELECT * FROM LocalUsersv2");
|
var queryResult = connection.Query("SELECT * FROM LocalUsersv2");
|
||||||
|
|||||||
Reference in New Issue
Block a user