db: improve genre and tag handling

This commit is contained in:
2026-02-05 02:11:08 -08:00
parent e24fb58d4e
commit 01f3cfef45
2 changed files with 67 additions and 16 deletions

View File

@@ -28,11 +28,13 @@ import {
artistAltNamesTable,
artistGroupsTable,
artistsTable,
genresTable,
groupAltNamesTable,
groupArtistMembersTable,
groupGroupMembersTable,
groupsTable,
songsTable,
tagsTable,
} from "./schema";
/**
@@ -428,11 +430,18 @@ export async function importAmqData(
// genres
if (a.genres.length) {
// Ensure lookup rows exist (string PK)
db.insert(genresTable)
.values(a.genres.map((g) => ({ name: g })))
.onConflictDoNothing()
.run();
// Insert relations
db.insert(animeGenresTable)
.values(
a.genres.map((g) => ({
annId: a.annId,
genre: g,
genreName: g,
})),
)
.run();
@@ -440,11 +449,18 @@ export async function importAmqData(
// tags
if (a.tags.length) {
// Ensure lookup rows exist (string PK)
db.insert(tagsTable)
.values(a.tags.map((t) => ({ name: t })))
.onConflictDoNothing()
.run();
// Insert relations
db.insert(animeTagsTable)
.values(
a.tags.map((t) => ({
annId: a.annId,
tag: t,
tagName: t,
})),
)
.run();