From 3dabacd0551a439107d488f48a218d1d6072e40d Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Fri, 28 Nov 2025 13:56:29 +0100 Subject: [PATCH] Revert "Auto-initialize default repositories on first API call" This reverts commit aebc8a6171840d10344a3500194ff765b2e748d8. --- src/server/db.ts | 61 +----------------------- src/server/services/repositoryService.ts | 46 ++++++++++++++++-- 2 files changed, 43 insertions(+), 64 deletions(-) diff --git a/src/server/db.ts b/src/server/db.ts index 15d7558..fdfe10f 100644 --- a/src/server/db.ts +++ b/src/server/db.ts @@ -2,7 +2,7 @@ import 'dotenv/config' import { PrismaClient } from '../../prisma/generated/prisma/client' import { PrismaBetterSqlite3 } from '@prisma/adapter-better-sqlite3' -const globalForPrisma = globalThis as { prisma?: PrismaClient; repositoriesInitialized?: boolean }; +const globalForPrisma = globalThis as { prisma?: PrismaClient }; const adapter = new PrismaBetterSqlite3({ url: process.env.DATABASE_URL! }); @@ -12,62 +12,3 @@ export const prisma: PrismaClient = globalForPrisma.prisma ?? new PrismaClient({ }); if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = prisma; - -/** - * Initialize default repositories if they don't exist. - * This is called lazily to ensure it runs even when using `npm run dev`. - */ -export async function ensureDefaultRepositories(): Promise { - // Only run once per process - if (globalForPrisma.repositoriesInitialized) { - return; - } - - try { - const mainRepoUrl = 'https://github.com/community-scripts/ProxmoxVE'; - const devRepoUrl = 'https://github.com/community-scripts/ProxmoxVED'; - - // Check if repositories already exist - const existingRepos = await prisma.repository.findMany({ - where: { - url: { - in: [mainRepoUrl, devRepoUrl] - } - } - }); - - const existingUrls = new Set(existingRepos.map((r: { url: string }) => r.url)); - - // Create main repo if it doesn't exist - if (!existingUrls.has(mainRepoUrl)) { - await prisma.repository.create({ - data: { - url: mainRepoUrl, - enabled: true, - is_default: true, - is_removable: false, - priority: 1 - } - }); - console.log('Initialized main repository:', mainRepoUrl); - } - - // Create dev repo if it doesn't exist - if (!existingUrls.has(devRepoUrl)) { - await prisma.repository.create({ - data: { - url: devRepoUrl, - enabled: false, - is_default: true, - is_removable: false, - priority: 2 - } - }); - console.log('Initialized dev repository:', devRepoUrl); - } - - globalForPrisma.repositoriesInitialized = true; - } catch (error) { - console.error('Failed to initialize default repositories:', error); - } -} diff --git a/src/server/services/repositoryService.ts b/src/server/services/repositoryService.ts index da0f4d7..c9045dd 100644 --- a/src/server/services/repositoryService.ts +++ b/src/server/services/repositoryService.ts @@ -1,19 +1,58 @@ /* eslint-disable @typescript-eslint/prefer-regexp-exec */ -import { prisma, ensureDefaultRepositories } from '../db'; +import { prisma } from '../db'; export class RepositoryService { /** * Initialize default repositories if they don't exist */ async initializeDefaultRepositories(): Promise { - await ensureDefaultRepositories(); + const mainRepoUrl = 'https://github.com/community-scripts/ProxmoxVE'; + const devRepoUrl = 'https://github.com/community-scripts/ProxmoxVED'; + + // Check if repositories already exist + const existingRepos = await prisma.repository.findMany({ + where: { + url: { + in: [mainRepoUrl, devRepoUrl] + } + } + }); + + const existingUrls = new Set(existingRepos.map((r: { url: string }) => r.url)); + + // Create main repo if it doesn't exist + if (!existingUrls.has(mainRepoUrl)) { + await prisma.repository.create({ + data: { + url: mainRepoUrl, + enabled: true, + is_default: true, + is_removable: false, + priority: 1 + } + }); + console.log('Initialized main repository:', mainRepoUrl); + } + + // Create dev repo if it doesn't exist + if (!existingUrls.has(devRepoUrl)) { + await prisma.repository.create({ + data: { + url: devRepoUrl, + enabled: false, + is_default: true, + is_removable: false, + priority: 2 + } + }); + console.log('Initialized dev repository:', devRepoUrl); + } } /** * Get all repositories, sorted by priority */ async getAllRepositories() { - await ensureDefaultRepositories(); return await prisma.repository.findMany({ orderBy: [ { priority: 'asc' }, @@ -26,7 +65,6 @@ export class RepositoryService { * Get enabled repositories, sorted by priority */ async getEnabledRepositories() { - await ensureDefaultRepositories(); return await prisma.repository.findMany({ where: { enabled: true