import { Kysely, sql } from 'kysely' export async function up(db: Kysely): Promise { await db.schema .createTable('quote') .addColumn('uri', 'varchar', (col) => col.primaryKey()) .addColumn('cid', 'varchar', (col) => col.notNull()) .addColumn('subject', 'varchar', (col) => col.notNull()) .addColumn('subjectCid', 'varchar', (col) => col.notNull()) .addColumn('createdAt', 'varchar', (col) => col.notNull()) .addColumn('indexedAt', 'varchar', (col) => col.notNull()) .addColumn('sortAt', 'varchar', (col) => col .generatedAlwaysAs(sql`least("createdAt", "indexedAt")`) .stored() .notNull(), ) .execute() await db.schema .createIndex('quote_subject_cursor_idx') .on('quote') .columns(['subject', 'sortAt', 'cid']) .execute() } export async function down(db: Kysely): Promise { await db.schema.dropTable('quote').execute() }