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:
@@ -10,9 +10,10 @@ This guide covers all database changes made on December 10, 2025 that need to be
|
||||
|
||||
**Changes Summary:**
|
||||
1. Table naming convention fix (snake_case to camelCase)
|
||||
2. Fix backwards Controls relationships (Equipment->PC to PC->Equipment)
|
||||
3. Propagate controller assignments to dualpath machines
|
||||
4. Sync equipment data between dualpath partners
|
||||
2. Compliance table column rename (snake_case to camelCase)
|
||||
3. Fix backwards Controls relationships (Equipment->PC to PC->Equipment)
|
||||
4. Propagate controller assignments to dualpath machines
|
||||
5. Sync equipment data between dualpath partners
|
||||
|
||||
---
|
||||
|
||||
@@ -285,7 +286,76 @@ SELECT COUNT(*) FROM vw_active_pcs;
|
||||
|
||||
---
|
||||
|
||||
## Step 4: Fix Dualpath Controller Relationships
|
||||
## Step 4: Fix Compliance Table Column Names
|
||||
|
||||
Rename snake_case columns to camelCase in compliance and compliancescans tables.
|
||||
|
||||
Run `sql/naming_convention_fix/07_fix_compliance_columns.sql` or execute:
|
||||
|
||||
```sql
|
||||
-- Drop dependent view
|
||||
DROP VIEW IF EXISTS vw_compliance_summary;
|
||||
|
||||
-- Rename compliance table columns
|
||||
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;
|
||||
|
||||
-- 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;
|
||||
|
||||
-- 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;
|
||||
|
||||
-- Verify
|
||||
SHOW COLUMNS FROM compliance;
|
||||
SHOW COLUMNS FROM compliancescans;
|
||||
SELECT COUNT(*) FROM vw_compliance_summary;
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Step 5: Fix Dualpath Controller Relationships
|
||||
|
||||
This fixes two issues:
|
||||
1. Backwards relationship direction (Equipment->Controls->PC should be PC->Controls->Equipment)
|
||||
@@ -391,7 +461,7 @@ SELECT 'Controller relationship fix complete!' AS status;
|
||||
|
||||
---
|
||||
|
||||
## Step 5: Sync Dualpath Equipment Data
|
||||
## Step 6: Sync Dualpath Equipment Data
|
||||
|
||||
This syncs controller type, model, and communication settings between dualpath partners.
|
||||
|
||||
@@ -506,7 +576,7 @@ SELECT 'Dualpath data sync complete!' AS status;
|
||||
|
||||
---
|
||||
|
||||
## Step 6: Deploy Updated ASP Files
|
||||
## Step 7: Deploy Updated ASP Files
|
||||
|
||||
Pull the latest code from Gitea which includes:
|
||||
- Updated table names in all ASP files
|
||||
@@ -522,7 +592,7 @@ Or copy files manually from a prepared deployment package.
|
||||
|
||||
---
|
||||
|
||||
## Step 7: Start IIS
|
||||
## Step 8: Start IIS
|
||||
|
||||
```cmd
|
||||
iisreset /start
|
||||
@@ -530,7 +600,7 @@ iisreset /start
|
||||
|
||||
---
|
||||
|
||||
## Step 8: Verify Everything Works
|
||||
## Step 9: Verify Everything Works
|
||||
|
||||
### 8.1 Test key pages in browser:
|
||||
- http://yourserver/displaypcs.asp - PC listing
|
||||
@@ -549,7 +619,7 @@ http://yourserver/api.asp?action=getDashboardData
|
||||
|
||||
---
|
||||
|
||||
## Step 9: Optional Cleanup
|
||||
## Step 10: Optional Cleanup
|
||||
|
||||
After confirming everything works (wait at least a day):
|
||||
|
||||
|
||||
87
sql/naming_convention_fix/07_fix_compliance_columns.sql
Normal file
87
sql/naming_convention_fix/07_fix_compliance_columns.sql
Normal 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;
|
||||
Reference in New Issue
Block a user