El sistema estaba intentando acceder a columnas clave y valor en la tabla configuracion, pero esta tabla usa un esquema singleton con una columna datos de tipo JSONB.
Error consultando configuracion: column configuracion.clave does not exist
cargarCategorias() para usar directamente el esquema singletonguardarCategorias() para trabajar con configuracion.datos JSONBclave y valordatos JSONB para guardar configuraciónCREATE TABLE configuracion (
id INTEGER PRIMARY KEY DEFAULT 1 CHECK (id = 1),
datos JSONB DEFAULT '{}'::jsonb,
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
datos// Cargar configuración
const resultado = await databaseService.select('configuracion', { limite: 1 });
const datos = resultado.data[0].datos;
const categorias = datos.categorias_gastos || [];
// Guardar configuración
const datosNuevos = { ...datos, categorias_gastos: nuevasCategorias };
await databaseService.update('configuracion', 1, {
datos: datosNuevos,
updated_at: new Date().toISOString()
});
Para verificar que la tabla existe y está correctamente configurada, ejecuta en Supabase SQL Editor:
-- Ver estructura de la tabla
SELECT column_name, data_type
FROM information_schema.columns
WHERE table_name = 'configuracion';
-- Ver datos actuales
SELECT * FROM configuracion;
-- Si no existe, crearla
CREATE TABLE IF NOT EXISTS configuracion (
id INTEGER PRIMARY KEY DEFAULT 1 CHECK (id = 1),
datos JSONB DEFAULT '{}'::jsonb,
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
-- Insertar registro inicial
INSERT INTO configuracion (id, datos)
VALUES (1, '{}'::jsonb)
ON CONFLICT (id) DO NOTHING;
El error persiste porque tu navegador tiene una versión antigua cacheada de los archivos JavaScript. Sigue estos pasos:
Ctrl + Shift + R o Ctrl + F5Cmd + Shift + RDespués de limpiar la cache, abre la consola del navegador (F12) y debes ver:
✅ gastos.js v20260119 cargado - Esquema singleton JSONB
Si ves este mensaje, el archivo correcto se cargó y el error debe desaparecer.
/js/gastos.js - Simplificadas funciones cargarCategorias() y guardarCategorias()/js/ajustes.js - Eliminadas referencias al esquema key-value/js/salas.js - Simplificada toda la lógica de configuración (3 secciones modificadas)El código ahora es 100% consistente con el esquema singleton de la tabla configuracion. Ya no hay lógica de detección dinámica de esquemas, lo que elimina completamente la posibilidad de errores por columnas inexistentes.