Fix: solucionar error SQLITE_BUSY y mejorar backend
- Migrar de sqlite3 a better-sqlite3 con conexión persistente - Configurar WAL mode, busy_timeout y PRAGMAs optimizados - Implementar transacciones para operaciones bulk - Corregir error initialLoadComplete en useHospitalStore.ts - Agregar tablas usuarios y kv faltantes - Actualizar .gitignore para archivos WAL de SQLite
This commit is contained in:
@@ -16,6 +16,14 @@ if (!existsSync(join(__dirname, 'data'))) {
|
||||
|
||||
const db = new Database(DB_PATH);
|
||||
|
||||
// Configure WAL mode and performance settings
|
||||
db.pragma('journal_mode = WAL');
|
||||
db.pragma('busy_timeout = 5000');
|
||||
db.pragma('synchronous = NORMAL');
|
||||
db.pragma('cache_size = 1000');
|
||||
db.pragma('temp_store = MEMORY');
|
||||
db.pragma('mmap_size = 268435456');
|
||||
|
||||
try {
|
||||
db.exec("ALTER TABLE internaciones ADD COLUMN areaId TEXT;");
|
||||
} catch (e) {
|
||||
@@ -23,6 +31,20 @@ try {
|
||||
}
|
||||
|
||||
db.exec(`
|
||||
CREATE TABLE IF NOT EXISTS usuarios (
|
||||
id TEXT PRIMARY KEY,
|
||||
apellido TEXT NOT NULL,
|
||||
nombre TEXT NOT NULL,
|
||||
dni TEXT NOT NULL UNIQUE,
|
||||
fechaNacimiento TEXT,
|
||||
email TEXT,
|
||||
rol TEXT,
|
||||
matriculaProfesional TEXT,
|
||||
passwordHash TEXT,
|
||||
areaId TEXT,
|
||||
fechaCreacion TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS pacientes (
|
||||
id TEXT PRIMARY KEY,
|
||||
apellido TEXT NOT NULL,
|
||||
@@ -139,6 +161,11 @@ CREATE TABLE IF NOT EXISTS areas (
|
||||
tipo TEXT,
|
||||
resultado TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS kv (
|
||||
key TEXT PRIMARY KEY,
|
||||
value TEXT
|
||||
);
|
||||
`);
|
||||
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user