fix: usar dbi en mantenimiento para evitar que instance sea undefined

Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
main
brobert 1 month ago
parent cd834552cc
commit f786ba8bfa

@ -67,8 +67,8 @@ export class MaintenanceService {
static async cleanupInactiveMembersOnce(instance?: Database, retentionDays: number = this.retentionDays): Promise<number> { static async cleanupInactiveMembersOnce(instance?: Database, retentionDays: number = this.retentionDays): Promise<number> {
if (retentionDays <= 0) return 0; if (retentionDays <= 0) return 0;
const threshold = toIsoSqlUTC(new Date(Date.now() - retentionDays * 24 * 60 * 60 * 1000)); const threshold = toIsoSqlUTC(new Date(Date.now() - retentionDays * 24 * 60 * 60 * 1000));
instance = (instance ?? (this as any).dbInstance ?? getDb()) as Database; const dbi = ((instance ?? (this as any).dbInstance ?? getDb()) as Database);
const res = instance.prepare(` const res = dbi.prepare(`
DELETE FROM group_members DELETE FROM group_members
WHERE is_active = 0 WHERE is_active = 0
AND last_seen_at < ? AND last_seen_at < ?
@ -84,18 +84,18 @@ export class MaintenanceService {
*/ */
static async reconcileAliasUsersOnce(instance?: Database): Promise<number> { static async reconcileAliasUsersOnce(instance?: Database): Promise<number> {
try { try {
instance = (instance ?? (this as any).dbInstance ?? getDb()) as Database; const dbi = ((instance ?? (this as any).dbInstance ?? getDb()) as Database);
const rows = instance.prepare(`SELECT alias, user_id FROM user_aliases WHERE alias != user_id`).all() as any[]; const rows = dbi.prepare(`SELECT alias, user_id FROM user_aliases WHERE alias != user_id`).all() as any[];
let merged = 0; let merged = 0;
for (const r of rows) { for (const r of rows) {
const alias = String(r.alias); const alias = String(r.alias);
const real = String(r.user_id); const real = String(r.user_id);
instance.transaction(() => { dbi.transaction(() => {
// Asegurar existencia del usuario real // Asegurar existencia del usuario real
try { try {
instance.prepare(`INSERT OR IGNORE INTO users (id) VALUES (?)`) dbi.prepare(`INSERT OR IGNORE INTO users (id) VALUES (?)`)
.run(real); .run(real);
} catch {} } catch {}
@ -110,7 +110,7 @@ export class MaintenanceService {
for (const sql of updates) { for (const sql of updates) {
try { try {
instance.prepare(sql).run(real, alias); dbi.prepare(sql).run(real, alias);
} catch { } catch {
// Ignorar si la tabla no existe en este despliegue // Ignorar si la tabla no existe en este despliegue
} }
@ -118,7 +118,7 @@ export class MaintenanceService {
// Intentar eliminar el usuario alias si ya no tiene referencias // Intentar eliminar el usuario alias si ya no tiene referencias
try { try {
instance.prepare(`DELETE FROM users WHERE id = ?`).run(alias); dbi.prepare(`DELETE FROM users WHERE id = ?`).run(alias);
} catch {} } catch {}
})(); })();

Loading…
Cancel
Save