mirror of
https://gitlab.com/soapbox-pub/ditto.git
synced 2025-12-06 03:19:46 +00:00
24 lines
1 KiB
TypeScript
24 lines
1 KiB
TypeScript
import type { Kysely } from 'kysely';
|
|
|
|
export async function up(db: Kysely<unknown>): Promise<void> {
|
|
await db.schema
|
|
.createTable('author_stats')
|
|
.addColumn('pubkey', 'text', (col) => col.primaryKey())
|
|
.addColumn('followers_count', 'integer', (col) => col.notNull().defaultTo(0))
|
|
.addColumn('following_count', 'integer', (col) => col.notNull().defaultTo(0))
|
|
.addColumn('notes_count', 'integer', (col) => col.notNull().defaultTo(0))
|
|
.execute();
|
|
|
|
await db.schema
|
|
.createTable('event_stats')
|
|
.addColumn('event_id', 'text', (col) => col.primaryKey().references('events.id').onDelete('cascade'))
|
|
.addColumn('replies_count', 'integer', (col) => col.notNull().defaultTo(0))
|
|
.addColumn('reposts_count', 'integer', (col) => col.notNull().defaultTo(0))
|
|
.addColumn('reactions_count', 'integer', (col) => col.notNull().defaultTo(0))
|
|
.execute();
|
|
}
|
|
|
|
export async function down(db: Kysely<unknown>): Promise<void> {
|
|
await db.schema.dropTable('author_stats').execute();
|
|
await db.schema.dropTable('event_stats').execute();
|
|
}
|