Update schema for new drizzle version and fix some config issue

This commit is contained in:
Zoe Roux 2024-11-08 23:39:29 +01:00
parent e2e04b88f4
commit 0759d6c2c4
No known key found for this signature in database
4 changed files with 19 additions and 23 deletions

View File

@ -4,6 +4,7 @@ export default defineConfig({
out: "./drizzle", out: "./drizzle",
schema: "./src/db/schema", schema: "./src/db/schema",
dialect: "postgresql", dialect: "postgresql",
casing: "snake_case",
dbCredentials: { dbCredentials: {
url: process.env.DATABASE_URL!, url: process.env.DATABASE_URL!,
}, },

View File

@ -7,10 +7,12 @@ import {
primaryKey, primaryKey,
text, text,
timestamp, timestamp,
unique,
uuid, uuid,
varchar, varchar,
} from "drizzle-orm/pg-core"; } from "drizzle-orm/pg-core";
import { image, language, schema } from "./utils"; import { image, language, schema } from "./utils";
import { shows } from "./shows";
export const entryType = schema.enum("entry_type", [ export const entryType = schema.enum("entry_type", [
"unknown", "unknown",
@ -26,7 +28,7 @@ export const entries = schema.table(
pk: integer().primaryKey().generatedAlwaysAsIdentity(), pk: integer().primaryKey().generatedAlwaysAsIdentity(),
id: uuid().notNull().unique().defaultRandom(), id: uuid().notNull().unique().defaultRandom(),
slug: varchar({ length: 255 }).notNull().unique(), slug: varchar({ length: 255 }).notNull().unique(),
// showId: integer().references(() => show.id), showId: integer().references(() => shows.id, { onDelete: "cascade" }),
order: integer().notNull(), order: integer().notNull(),
seasonNumber: integer(), seasonNumber: integer(),
episodeNumber: integer(), episodeNumber: integer(),
@ -40,10 +42,10 @@ export const entries = schema.table(
createdAt: timestamp({ withTimezone: true, mode: "string" }).defaultNow(), createdAt: timestamp({ withTimezone: true, mode: "string" }).defaultNow(),
nextRefresh: timestamp({ withTimezone: true, mode: "string" }), nextRefresh: timestamp({ withTimezone: true, mode: "string" }),
}, },
(t) => ({ (t) => [
// episodeKey: unique().on(t.showId, t.seasonNumber, t.episodeNumber), unique().on(t.showId, t.seasonNumber, t.episodeNumber),
orderPositive: check("orderPositive", sql`${t.order} >= 0`), check("order_positive", sql`${t.order} >= 0`),
}), ],
); );
export const entriesTranslation = schema.table( export const entriesTranslation = schema.table(
@ -56,7 +58,5 @@ export const entriesTranslation = schema.table(
name: text(), name: text(),
description: text(), description: text(),
}, },
(t) => ({ (t) => [primaryKey({ columns: [t.pk, t.language] })],
pk: primaryKey({ columns: [t.pk, t.language] }),
}),
); );

View File

@ -67,13 +67,10 @@ export const shows = schema.table(
.defaultNow(), .defaultNow(),
nextRefresh: timestamp({ withTimezone: true, mode: "string" }).notNull(), nextRefresh: timestamp({ withTimezone: true, mode: "string" }).notNull(),
}, },
(t) => ({ (t) => [
ratingValid: check( check("rating_valid", sql`${t.rating} between 0 and 100`),
"ratingValid", check("runtime_valid", sql`${t.runtime} >= 0`),
sql`${t.rating} between 0 and 100`, ],
),
runtimeValid: check("runtimeValid", sql`0 <= ${t.runtime}`),
}),
); );
export const showTranslations = schema.table( export const showTranslations = schema.table(
@ -94,7 +91,5 @@ export const showTranslations = schema.table(
banner: image(), banner: image(),
logo: image(), logo: image(),
}, },
(t) => ({ (t) => [primaryKey({ columns: [t.pk, t.language] })],
pk: primaryKey({ columns: [t.pk, t.language] }),
}),
); );

View File

@ -14,9 +14,9 @@ export const videos = schema.table(
createdAt: timestamp({ withTimezone: true }).notNull().defaultNow(), createdAt: timestamp({ withTimezone: true }).notNull().defaultNow(),
}, },
(t) => ({ (t) => [
ratingValid: check("renderingPos", sql`0 <= ${t.rendering}`), check("rendering_pos", sql`${t.rendering} >= 0`),
partValid: check("partPos", sql`0 <= ${t.part}`), check("part_pos", sql`${t.part} >= 0`),
versionValid: check("versionPos", sql`0 <= ${t.version}`), check("version_pos", sql`${t.version} >= 0`),
}), ],
); );