A discord bot for teal.fm
discord tealfm music

add column to plays table to track if backfilled record is live or not

besaid.zone e6c7419f f04c11b1

verified
Changed files
+22 -5
packages
+4 -4
packages/database/database.d.ts
··· 5 5 6 6 import type { ColumnType } from "kysely"; 7 7 8 - export type Generated<T> = 9 - T extends ColumnType<infer S, infer I, infer U> 10 - ? ColumnType<S, I | undefined, U> 11 - : ColumnType<T, T | undefined, T>; 8 + export type Generated<T> = T extends ColumnType<infer S, infer I, infer U> 9 + ? ColumnType<S, I | undefined, U> 10 + : ColumnType<T, T | undefined, T>; 12 11 13 12 export type Timestamp = ColumnType<Date, Date | string, Date | string>; 14 13 ··· 30 29 export interface Plays { 31 30 id: Generated<number>; 32 31 indexed_at: Generated<Timestamp>; 32 + live: boolean | null; 33 33 played_time: Timestamp; 34 34 release_name: string; 35 35 track_name: string;
+17
packages/database/migrations/1767547891854_track_record_status.ts
··· 1 + import type { Kysely } from 'kysely' 2 + 3 + // `any` is required here since migrations should be frozen in time. alternatively, keep a "snapshot" db interface. 4 + export async function up(db: Kysely<any>): Promise<void> { 5 + // up migration code goes here... 6 + // note: up migrations are mandatory. you must implement this function. 7 + // For more info, see: https://kysely.dev/docs/migrations 8 + await db.schema.alterTable("plays").addColumn("live", "boolean").execute() 9 + } 10 + 11 + // `any` is required here since migrations should be frozen in time. alternatively, keep a "snapshot" db interface. 12 + export async function down(db: Kysely<any>): Promise<void> { 13 + // down migration code goes here... 14 + // note: down migrations are optional. you can safely delete this function. 15 + // For more info, see: https://kysely.dev/docs/migrations 16 + await db.schema.alterTable("plays").dropColumn("live").execute() 17 + }
+1 -1
packages/database/package.json
··· 17 17 "watch": "tsc --watch", 18 18 "build": "tsc", 19 19 "migrate": "kysely migrate latest", 20 - "codegen": "kysely-codegen --dialect postgres --env-file='../../.env' --out-file ./database.d.ts", 20 + "codegen": "kysely-codegen --dialect postgres --env-file='../.env' --out-file ./database.d.ts", 21 21 "seed": "tsx seed.ts", 22 22 "typecheck": "tsc --noEmit" 23 23 },