Fix startup schema migration deadlock
This commit is contained in:
@@ -2055,7 +2055,24 @@ export class DatabaseManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static async migrateLegacyNormalizedTables(): Promise<void> {
|
private static async migrateLegacyNormalizedTables(): Promise<void> {
|
||||||
const messages = await DatabaseManager.getAllMessages();
|
// Do not call getAllMessages() here: it awaits DatabaseManager.ready, which
|
||||||
|
// is the promise currently waiting on ensureSchema(). That creates a
|
||||||
|
// self-deadlock during startup migrations.
|
||||||
|
const messages = await DatabaseManager.query<MessageDbRow>(`
|
||||||
|
SELECT
|
||||||
|
"id",
|
||||||
|
"chatId",
|
||||||
|
"replyToMessageId",
|
||||||
|
"fromId",
|
||||||
|
"text",
|
||||||
|
"quoteText",
|
||||||
|
"date",
|
||||||
|
"deletedByBotAt",
|
||||||
|
"attachments",
|
||||||
|
"pipelineAudit"
|
||||||
|
FROM "messages"
|
||||||
|
ORDER BY "chatId", "id"
|
||||||
|
`);
|
||||||
const attachments = messages.flatMap(message => DatabaseManager.attachmentRowsFromMessageRow(message));
|
const attachments = messages.flatMap(message => DatabaseManager.attachmentRowsFromMessageRow(message));
|
||||||
const artifacts = messages.flatMap(message => DatabaseManager.artifactRowsFromMessageRow(message));
|
const artifacts = messages.flatMap(message => DatabaseManager.artifactRowsFromMessageRow(message));
|
||||||
const requestAudits = messages.flatMap(message => DatabaseManager.requestAuditRowsFromMessageRow(message));
|
const requestAudits = messages.flatMap(message => DatabaseManager.requestAuditRowsFromMessageRow(message));
|
||||||
|
|||||||
Reference in New Issue
Block a user