Revert "Auto-initialize default repositories on first API call"

This reverts commit aebc8a6171.
This commit is contained in:
CanbiZ
2025-11-28 13:56:29 +01:00
parent e8ee829577
commit 3dabacd055
2 changed files with 43 additions and 64 deletions

View File

@@ -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<void> {
// 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);
}
}

View File

@@ -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<void> {
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