db: split schema into separate files
This commit is contained in:
40
src/lib/db/schema/tables/anime-names.ts
Normal file
40
src/lib/db/schema/tables/anime-names.ts
Normal file
@@ -0,0 +1,40 @@
|
||||
import {
|
||||
index,
|
||||
integer,
|
||||
sqliteTable,
|
||||
text,
|
||||
uniqueIndex,
|
||||
} from "drizzle-orm/sqlite-core";
|
||||
import { animeTable } from "./anime";
|
||||
|
||||
/**
|
||||
* Additional localized/alternative names for an anime.
|
||||
*
|
||||
* Source: AmqAnimeSchema.names
|
||||
* - language: "EN" | "JA" (per source)
|
||||
* - name: string
|
||||
*/
|
||||
export const animeNamesTable = sqliteTable(
|
||||
"anime_names",
|
||||
{
|
||||
id: integer("id").notNull().primaryKey({ autoIncrement: true }),
|
||||
|
||||
annId: integer("ann_id")
|
||||
.notNull()
|
||||
.references(() => animeTable.annId, { onDelete: "cascade" }),
|
||||
|
||||
/** "EN" | "JA" per source */
|
||||
language: text("language").notNull(),
|
||||
|
||||
name: text("name").notNull(),
|
||||
},
|
||||
(t) => ({
|
||||
animeIndex: index("anime_names_ann_id_idx").on(t.annId),
|
||||
nameIndex: index("anime_names_name_idx").on(t.name),
|
||||
uniquePerAnime: uniqueIndex("anime_names_ann_lang_name_uq").on(
|
||||
t.annId,
|
||||
t.language,
|
||||
t.name,
|
||||
),
|
||||
}),
|
||||
);
|
||||
Reference in New Issue
Block a user