refactor: migrate from MongoDB to SQLite, updating database schema and configuration for improved performance and simplicity

This commit is contained in:
Julien Froidefond
2025-10-24 15:11:29 +02:00
parent 07c6bae2c4
commit ac5fa85185
22 changed files with 278 additions and 219 deletions

View File

@@ -16,20 +16,21 @@ export class ConfigDBService {
static async saveConfig(data: KomgaConfigData): Promise<KomgaConfig> {
try {
const user: User | null = await this.getCurrentUser();
const userId = parseInt(user.id, 10);
const authHeader: string = Buffer.from(`${data.username}:${data.password}`).toString(
"base64"
);
const config = await prisma.komgaConfig.upsert({
where: { userId: user.id },
where: { userId },
update: {
url: data.url,
username: data.username,
authHeader,
},
create: {
userId: user.id,
userId,
url: data.url,
username: data.username,
authHeader,
@@ -48,11 +49,12 @@ export class ConfigDBService {
static async getConfig(): Promise<KomgaConfig | null> {
try {
const user: User | null = await this.getCurrentUser();
const userId = parseInt(user.id, 10);
const config = await prisma.komgaConfig.findUnique({
where: { userId: user.id },
where: { userId },
});
return config as KomgaConfig | null;
return config;
} catch (error) {
if (error instanceof AppError) {
throw error;
@@ -64,9 +66,10 @@ export class ConfigDBService {
static async getTTLConfig(): Promise<TTLConfig | null> {
try {
const user: User | null = await this.getCurrentUser();
const userId = parseInt(user.id, 10);
const config = await prisma.tTLConfig.findUnique({
where: { userId: user.id },
where: { userId },
});
return config as TTLConfig | null;
} catch (error) {
@@ -80,9 +83,10 @@ export class ConfigDBService {
static async saveTTLConfig(data: TTLConfigData): Promise<TTLConfig> {
try {
const user: User | null = await this.getCurrentUser();
const userId = parseInt(user.id, 10);
const config = await prisma.tTLConfig.upsert({
where: { userId: user.id },
where: { userId },
update: {
defaultTTL: data.defaultTTL,
homeTTL: data.homeTTL,
@@ -93,7 +97,7 @@ export class ConfigDBService {
imageCacheMaxAge: data.imageCacheMaxAge,
},
create: {
userId: user.id,
userId,
defaultTTL: data.defaultTTL,
homeTTL: data.homeTTL,
librariesTTL: data.librariesTTL,