Scratch space for learning atproto app development
1import type { Kysely, Migration, MigrationProvider } from 'kysely' 2 3const migrations: Record<string, Migration> = {} 4 5export const migrationProvider: MigrationProvider = { 6 async getMigrations() { 7 return migrations 8 }, 9} 10 11migrations['001'] = { 12 async up(db: Kysely<unknown>) { 13 await db.schema 14 .createTable('did_cache') 15 .addColumn('did', 'varchar', (col) => col.primaryKey()) 16 .addColumn('doc', 'varchar', (col) => col.notNull()) 17 .addColumn('updatedAt', 'varchar', (col) => col.notNull()) 18 .execute() 19 await db.schema 20 .createTable('status') 21 .addColumn('authorDid', 'varchar', (col) => col.primaryKey()) 22 .addColumn('status', 'varchar', (col) => col.notNull()) 23 .addColumn('updatedAt', 'varchar', (col) => col.notNull()) 24 .addColumn('indexedAt', 'varchar', (col) => col.notNull()) 25 .execute() 26 await db.schema 27 .createTable('auth_session') 28 .addColumn('key', 'varchar', (col) => col.primaryKey()) 29 .addColumn('session', 'varchar', (col) => col.notNull()) 30 .execute() 31 await db.schema 32 .createTable('auth_state') 33 .addColumn('key', 'varchar', (col) => col.primaryKey()) 34 .addColumn('state', 'varchar', (col) => col.notNull()) 35 .execute() 36 }, 37 async down(db: Kysely<unknown>) { 38 await db.schema.dropTable('auth_state').execute() 39 await db.schema.dropTable('auth_session').execute() 40 await db.schema.dropTable('status').execute() 41 await db.schema.dropTable('did_cache').execute() 42 }, 43}