修复sqlite迁移

This commit is contained in:
2026-08-11 17:58:17 +08:00 Unverified
parent d6694b4f76
commit f3703fdf3c
@@ -739,9 +739,24 @@ public sealed class DevelopmentSqliteMigrator(
NotificationInboxIndexesMigration,
NotificationInboxIndexesStatements,
cancellationToken);
var experimentProjectColumns = (await db.Database.SqlQueryRaw<string>(
"SELECT name AS \"Value\" FROM pragma_table_info('ExperimentProjects')")
.ToListAsync(cancellationToken))
.ToHashSet(StringComparer.OrdinalIgnoreCase);
var experimentSessionInstructorsExist = await db.Database
.SqlQueryRaw<int>(
"SELECT COUNT(*) AS \"Value\" FROM sqlite_master WHERE type = 'table' AND name = 'ExperimentSessionInstructors'")
.AnyAsync(value => value > 0, cancellationToken);
var selfScheduledExperimentSelectionStatements = new List<string>();
if (!experimentProjectColumns.Contains("SelectionStartsAt"))
selfScheduledExperimentSelectionStatements.Add(SelfScheduledExperimentSelectionStatements[0]);
if (!experimentProjectColumns.Contains("SelectionEndsAt"))
selfScheduledExperimentSelectionStatements.Add(SelfScheduledExperimentSelectionStatements[1]);
if (!experimentSessionInstructorsExist)
selfScheduledExperimentSelectionStatements.AddRange(SelfScheduledExperimentSelectionStatements.Skip(2));
await ApplyMigrationAsync(
SelfScheduledExperimentSelectionMigration,
SelfScheduledExperimentSelectionStatements,
selfScheduledExperimentSelectionStatements,
cancellationToken);
}