@atproto/ozone
Version:
Backend service for moderating the Bluesky network.
39 lines (33 loc) • 1.58 kB
text/typescript
import { Kysely, sql } from 'kysely'
export async function up(db: Kysely<unknown>): Promise<void> {
await sql`
CREATE INDEX "moderation_event_account_reports_idx"
ON moderation_event("createdBy","subjectDid", "createdAt")
WHERE "subjectUri" IS NULL
AND "action" = 'tools.ozone.moderation.defs#modEventReport'
`.execute(db)
await sql`
CREATE INDEX "moderation_event_record_reports_idx"
ON moderation_event("createdBy","subjectDid","subjectUri", "createdAt")
WHERE "subjectUri" IS NOT NULL
AND "action" = 'tools.ozone.moderation.defs#modEventReport'
`.execute(db)
await sql`
CREATE INDEX "moderation_event_account_actions_ids"
ON moderation_event("subjectDid","action", "createdAt")
WHERE "subjectUri" IS NULL
AND "action" IN ( 'tools.ozone.moderation.defs#modEventTakedown', 'tools.ozone.moderation.defs#modEventLabel')
`.execute(db)
await sql`
CREATE INDEX "moderation_event_record_actions_ids"
ON moderation_event("subjectDid","subjectUri", "action", "createdAt")
WHERE "subjectUri" IS NOT NULL
AND "action" IN ( 'tools.ozone.moderation.defs#modEventTakedown', 'tools.ozone.moderation.defs#modEventLabel')
`.execute(db)
}
export async function down(db: Kysely<unknown>): Promise<void> {
await db.schema.dropIndex('moderation_event_account_reports_idx').execute()
await db.schema.dropIndex('moderation_event_record_reports_idx').execute()
await db.schema.dropIndex('moderation_event_account_actions_ids').execute()
await db.schema.dropIndex('moderation_event_record_actions_ids').execute()
}