WIP more tomfoolery
This commit is contained in:
@@ -375,7 +375,7 @@ export async function importAmqData(
|
|||||||
malId: a.malId,
|
malId: a.malId,
|
||||||
kitsuId: a.kitsuId,
|
kitsuId: a.kitsuId,
|
||||||
categoryName: a.category.name,
|
categoryName: a.category.name,
|
||||||
categoryNumber: categoryNumberToText(a.category.number),
|
categoryNumber: a.category.number,
|
||||||
mainName: a.mainName,
|
mainName: a.mainName,
|
||||||
mainNameEn: a.mainNames.EN,
|
mainNameEn: a.mainNames.EN,
|
||||||
mainNameJa: a.mainNames.JA,
|
mainNameJa: a.mainNames.JA,
|
||||||
|
|||||||
@@ -1,4 +1,21 @@
|
|||||||
import "dotenv/config";
|
import "dotenv/config";
|
||||||
import { drizzle } from "drizzle-orm/better-sqlite3";
|
import type { BetterSQLite3Database } from "drizzle-orm/better-sqlite3";
|
||||||
|
import type { BunSQLiteDatabase } from "drizzle-orm/bun-sqlite";
|
||||||
|
|
||||||
export const db = drizzle(process.env.DB_FILE_NAME);
|
let _db: BunSQLiteDatabase | BetterSQLite3Database;
|
||||||
|
|
||||||
|
if (!process.env.DB_FILE_NAME) {
|
||||||
|
throw new Error("DB_FILE_NAME is not set");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (process.versions.bun) {
|
||||||
|
console.info("Using Bun SQLite");
|
||||||
|
const { drizzle } = await import("drizzle-orm/bun-sqlite");
|
||||||
|
_db = drizzle(process.env.DB_FILE_NAME);
|
||||||
|
} else {
|
||||||
|
console.info("Using Better SQLite3");
|
||||||
|
const { drizzle } = await import("drizzle-orm/better-sqlite3");
|
||||||
|
_db = drizzle(process.env.DB_FILE_NAME);
|
||||||
|
}
|
||||||
|
|
||||||
|
export const db = _db;
|
||||||
|
|||||||
@@ -1,4 +1,10 @@
|
|||||||
import { index, integer, sqliteTable, text } from "drizzle-orm/sqlite-core";
|
import {
|
||||||
|
index,
|
||||||
|
integer,
|
||||||
|
real,
|
||||||
|
sqliteTable,
|
||||||
|
text,
|
||||||
|
} from "drizzle-orm/sqlite-core";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Core `anime` table.
|
* Core `anime` table.
|
||||||
@@ -21,7 +27,7 @@ export const anime = sqliteTable(
|
|||||||
|
|
||||||
// Category object (name + number that can be number|string|null in source)
|
// Category object (name + number that can be number|string|null in source)
|
||||||
categoryName: text("category_name").notNull(),
|
categoryName: text("category_name").notNull(),
|
||||||
categoryNumber: text("category_number"),
|
categoryNumber: real("category_number"),
|
||||||
|
|
||||||
// Names
|
// Names
|
||||||
mainName: text("main_name").notNull(),
|
mainName: text("main_name").notNull(),
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ export const AmqAnimeSchema = z.object({
|
|||||||
kitsuId: z.int().positive().nullable(),
|
kitsuId: z.int().positive().nullable(),
|
||||||
category: z.object({
|
category: z.object({
|
||||||
name: AmqAnimeCategory,
|
name: AmqAnimeCategory,
|
||||||
number: z.union([z.number(), z.string()]).nullable(),
|
number: z.coerce.number().nullable(),
|
||||||
}),
|
}),
|
||||||
genres: z.array(AmqAnimeGenre),
|
genres: z.array(AmqAnimeGenre),
|
||||||
tags: z.array(AmqAnimeTag),
|
tags: z.array(AmqAnimeTag),
|
||||||
|
|||||||
Reference in New Issue
Block a user