Fix compliance table column names (snake_case to camelCase)

Renamed columns in compliance and compliancescans tables:
- scan_date -> scandate
- deployment_notes -> deploymentnotes
- is_third_party_managed -> isthirdpartymanaged
- third_party_manager -> thirdpartymanager
- ot_asset_* -> otasset*
- is_compliant -> iscompliant
- compliance_notes -> compliancenotes
- scan_name -> scanname
- scan_result -> scanresult
- scan_details -> scandetails

Updated ASP files:
- displaymachine.asp, displaypc.asp - fixed column reads
- editmachine.asp, editpc.asp, editdevice.asp, machine_edit.asp - fixed column reads
- savemachineedit.asp, savemachine_direct.asp, updatedevice_direct.asp - fixed SQL

Updated production migration guide with new Step 4 for compliance columns.

Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
cproudlock
2025-12-10 20:22:49 -05:00
parent aac39d8a9f
commit 6162db9fcf
11 changed files with 207 additions and 51 deletions

View File

@@ -0,0 +1,87 @@
-- ============================================================================
-- Script: 07_fix_compliance_columns.sql
-- Purpose: Rename snake_case columns to camelCase in compliance tables
-- Target: MySQL 5.6 (dev and production)
-- ============================================================================
-- ============================================================================
-- STEP 1: DROP DEPENDENT VIEW
-- ============================================================================
DROP VIEW IF EXISTS vw_compliance_summary;
-- ============================================================================
-- STEP 2: RENAME COMPLIANCE TABLE COLUMNS
-- ============================================================================
-- compliance table column renames
ALTER TABLE compliance
CHANGE COLUMN scan_date scandate datetime,
CHANGE COLUMN deployment_notes deploymentnotes text,
CHANGE COLUMN is_third_party_managed isthirdpartymanaged enum('Yes','No','NA') DEFAULT 'NA',
CHANGE COLUMN third_party_manager thirdpartymanager varchar(255),
CHANGE COLUMN ot_asset_system otassetsystem varchar(255),
CHANGE COLUMN ot_asset_device otassetdevice varchar(255),
CHANGE COLUMN ot_asset_location otassetlocation varchar(255),
CHANGE COLUMN ot_asset_device_type otassetdevicetype varchar(100),
CHANGE COLUMN ot_asset_category otassetcategory varchar(100),
CHANGE COLUMN ot_asset_last_seen otassetlastseen datetime,
CHANGE COLUMN ot_asset_ip_source otassetipsource varchar(100),
CHANGE COLUMN is_compliant iscompliant tinyint(1),
CHANGE COLUMN compliance_notes compliancenotes text;
-- ============================================================================
-- STEP 3: RENAME COMPLIANCESCANS TABLE COLUMNS
-- ============================================================================
ALTER TABLE compliancescans
CHANGE COLUMN scan_name scanname varchar(255),
CHANGE COLUMN scan_date scandate datetime NOT NULL,
CHANGE COLUMN scan_result scanresult enum('Pass','Fail','Warning','Info') DEFAULT 'Info',
CHANGE COLUMN scan_details scandetails text;
-- ============================================================================
-- STEP 4: RECREATE VIEW WITH NEW COLUMN NAMES
-- ============================================================================
CREATE VIEW vw_compliance_summary AS
SELECT
m.machineid,
m.machinenumber,
m.hostname,
m.serialnumber,
c.scan,
c.scandate,
c.isthirdpartymanaged,
c.thirdpartymanager,
c.mft,
c.iscompliant,
c.deploymentnotes,
c.otassetsystem,
c.otassetdevice,
c.otassetlocation,
(TO_DAYS(CURDATE()) - TO_DAYS(c.scandate)) AS days_since_scan,
CASE
WHEN c.scandate IS NULL THEN 'Never Scanned'
WHEN c.scandate < (CURDATE() - INTERVAL 90 DAY) THEN 'Scan Overdue'
WHEN c.scandate < (CURDATE() - INTERVAL 30 DAY) THEN 'Scan Due Soon'
ELSE 'Scan Current'
END AS scan_status
FROM machines m
LEFT JOIN compliance c ON m.machineid = c.machineid
WHERE m.isactive = 1;
-- ============================================================================
-- VERIFICATION
-- ============================================================================
SELECT 'Compliance table columns after rename:' AS status;
SHOW COLUMNS FROM compliance;
SELECT 'Compliancescans table columns after rename:' AS status;
SHOW COLUMNS FROM compliancescans;
SELECT 'View test:' AS status;
SELECT COUNT(*) AS row_count FROM vw_compliance_summary;
SELECT 'Column rename complete!' AS status;