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('post').execute()
41 await db.schema.dropTable('did_cache').execute()
42 },
43}