2.9 KiB
2.9 KiB
Critical Database Field Fixes Required
Summary
Found 62 field name inconsistencies across 6 Python files that need to be fixed to match the database schema.
Most Critical Issues
1. Sessions Table Field References
The sessions table has duplicate columns that are causing confusion:
| Database Column | Code References (Wrong) | Files Affected |
|---|---|---|
hardware_id |
device_id |
api_routes.py, session_routes.py, export_routes.py |
is_active |
active |
api_routes.py, session_routes.py, export_routes.py, batch_routes.py |
started_at |
login_time |
session_routes.py, export_routes.py |
last_heartbeat |
last_activity |
session_routes.py, export_routes.py |
ended_at |
logout_time |
api_routes.py, session_routes.py, export_routes.py |
started_at |
start_time |
models.py |
2. Device Registration Issues
device_registrationstable usesdevice_idcolumn (line 324 in api_routes.py)- But sessions table uses
hardware_id - This creates a mismatch when joining tables
Immediate Action Required
Option 1: Fix Code (Recommended)
Update all Python files to use the correct column names from the database schema.
Option 2: Add Compatibility Columns (Temporary)
-- Add missing columns to sessions for backward compatibility
ALTER TABLE sessions ADD COLUMN IF NOT EXISTS device_id VARCHAR(100);
UPDATE sessions SET device_id = hardware_id WHERE device_id IS NULL;
-- Update device_registrations to use hardware_id
ALTER TABLE device_registrations RENAME COLUMN device_id TO hardware_id;
Files That Need Updates
-
routes/session_routes.py (15 occurrences)
- Lines: 84, 134, 325 (device_id)
- Lines: 85, 109, 112, 119, 124, 135, 150 (login_time)
- Lines: 86, 119, 136, 202, 248 (logout_time)
- Lines: 87, 137 (last_activity)
- Lines: 88, 124, 138, 192, 202, 236, 248, 249, 328, 340, 361 (active)
-
routes/api_routes.py (12 occurrences)
- Lines: 203, 214, 345, 861 (device_id)
- Lines: 204, 344, 345, 453, 455, 457, 862 (active)
- Line: 344 (logout_time)
-
routes/export_routes.py (11 occurrences)
- Lines: 47, 72, 224, 244 (device_id)
- Lines: 46, 71, 228, 233, 248 (active)
- Lines: 225, 234, 245, 253, 254 (login_time)
- Lines: 226, 246 (logout_time)
- Lines: 227, 247 (last_activity)
-
models.py (2 occurrences)
- Line: 167 (start_time)
- Line: 177 (active - but this is just in error message)
-
routes/batch_routes.py (2 occurrences)
- Lines: 212, 213 (active)
-
routes/customer_routes.py (1 occurrence)
- Line: 392 (comment mentions correction already made)
Testing After Fixes
- Test all session-related functionality
- Verify device registration/deregistration works
- Check session history displays correctly
- Ensure exports contain correct data
- Validate batch operations still function