From efbefd918a19553a8c2dc303ee0084ece05301a6 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Tue, 11 Feb 2025 21:20:16 -0600 Subject: [PATCH] Speed up db:populate-extensions task --- scripts/db-populate-extensions.ts | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/scripts/db-populate-extensions.ts b/scripts/db-populate-extensions.ts index 428b591f..ca6d1927 100644 --- a/scripts/db-populate-extensions.ts +++ b/scripts/db-populate-extensions.ts @@ -1,25 +1,26 @@ +import { NostrEvent } from '@nostrify/nostrify'; + import { Storages } from '@/storages.ts'; import { EventsDB } from '@/storages/EventsDB.ts'; -const store = await Storages.db(); const kysely = await Storages.kysely(); -for await (const msg of store.req([{}])) { - if (msg[0] === 'EVENT') { - const event = msg[2]; +const query = kysely + .selectFrom('nostr_events') + .select(['id', 'kind', 'content', 'pubkey', 'tags', 'created_at', 'sig']); - const ext = EventsDB.indexExtensions(event); +for await (const row of query.stream()) { + const event: NostrEvent = { ...row, created_at: Number(row.created_at) }; + const ext = EventsDB.indexExtensions(event); - try { - await kysely.updateTable('nostr_events') - .set('search_ext', ext) - .where('id', '=', event.id) - .execute(); - } catch { - // do nothing - } - } else { - break; + try { + await kysely + .updateTable('nostr_events') + .set('search_ext', ext) + .where('id', '=', event.id) + .execute(); + } catch { + // do nothing } }