db: improve genre and tag handling
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user