diff --git a/web/src/api/admin.ts b/web/src/api/admin.ts index 98f3d86..4779312 100644 --- a/web/src/api/admin.ts +++ b/web/src/api/admin.ts @@ -1,4 +1,4 @@ -import { api } from './client' +import { api, MIGRATION_REQUEST_TIMEOUT } from './client' import type { AccessLog, Setting, User } from '../types' export interface DatabaseStatus { @@ -137,8 +137,12 @@ export const adminAPI = { testDatabaseConnection: (payload: DatabaseConnectionPayload) => api.post('/admin/database/test', payload).then((r) => r.data), - migrateDatabase: (payload: DatabaseConnectionPayload) => - api.post('/admin/database/migrate', payload).then((r) => r.data), + migrateDatabase: (payload: DatabaseConnectionPayload) => + api + .post('/admin/database/migrate', payload, { + timeout: MIGRATION_REQUEST_TIMEOUT, + }) + .then((r) => r.data), saveDatabaseConfig: (payload: DatabaseConnectionPayload) => api.post<{ message: string; type: string }>('/admin/database/save-config', payload).then((r) => r.data), diff --git a/web/src/api/client.ts b/web/src/api/client.ts index b1e8714..d5f0e6f 100644 --- a/web/src/api/client.ts +++ b/web/src/api/client.ts @@ -12,6 +12,7 @@ export const api = axios.create({ export const LONG_REQUEST_TIMEOUT = 120_000 export const BATCH_REQUEST_TIMEOUT = 300_000 +export const MIGRATION_REQUEST_TIMEOUT = 600_000 // Flag to prevent multiple simultaneous refresh attempts let isRefreshing = false