From 83a7b1f2318bf16bf523d4a61ca5a0402a0e2643 Mon Sep 17 00:00:00 2001 From: Siddharth Singh Date: Fri, 17 May 2024 14:46:20 +0530 Subject: [PATCH] create tags_usages kysely table --- src/db/DittoTables.ts | 7 +++++++ src/db/migrations/021_create_trends.ts | 28 ++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 src/db/migrations/021_create_trends.ts diff --git a/src/db/DittoTables.ts b/src/db/DittoTables.ts index 42d39ea9..abbf5709 100644 --- a/src/db/DittoTables.ts +++ b/src/db/DittoTables.ts @@ -6,8 +6,15 @@ export interface DittoTables { author_stats: AuthorStatsRow; event_stats: EventStatsRow; pubkey_domains: PubkeyDomainRow; + trends_tag_usages: TagUsageRow; } +interface TagUsageRow { + tag: string, + pubkey8: string, + inserted_at: number +}; + interface AuthorStatsRow { pubkey: string; followers_count: number; diff --git a/src/db/migrations/021_create_trends.ts b/src/db/migrations/021_create_trends.ts new file mode 100644 index 00000000..ed3dbc71 --- /dev/null +++ b/src/db/migrations/021_create_trends.ts @@ -0,0 +1,28 @@ +import { Kysely, sql } from 'kysely'; + +export async function up(db: Kysely): Promise { + await db.transaction().execute(async trx => { + await trx.schema + .createTable('trends_tag_usages') + .ifNotExists() + .addColumn('tag', 'text', c => c.notNull().modifyEnd(sql`collate nocase`)) + .addColumn('pubkey8', 'text', c => c.notNull()) + .addColumn('inserted_at', 'integer', c => c.notNull()) + .execute(); + + await trx.schema + .createIndex('trends_idx_time_tag') + .ifNotExists() + .on('trends_tag_usages') + .column('inserted_at') + .column('tag') + .execute(); + }) +} + +export async function down(db: Kysely): Promise { + await db.transaction().execute(async trx => { + await trx.schema.dropIndex('trends_idx_time_tag').ifExists().execute(); + await trx.schema.dropTable('trends_tag_usages').ifExists().execute(); + }) +}