# Database Schema Comparison Report **Date:** 2025-11-20 **Comparison:** database-backup-11-20-25-eod-with-drop.sql vs Current Dev Database **Dev Backup Created:** /home/camp/projects/windows/shopdb/sql/dev-backup-20251120-105614.sql --- ## Executive Summary The backup file contains **Phase 1 schema** (pre-migration) with 63 tables, while the current dev database contains **Phase 2 schema** (post-migration) with 30 tables. **Key Findings:** - ✅ **4 tables have schema changes** (businessunits, controllertypes, machine_overrides, machines) - ✅ **8 new Phase 2 tables** exist in dev but not in backup - ✅ **41 legacy tables** exist in backup but not in dev (deprecated/views) --- ## Tables Requiring DROP and Recreate ### 1. Tables with Schema Changes (4 tables) These tables exist in both files but have different column structures. They should be **dropped and recreated** from the backup file if you want to revert to the backup schema. #### ⚠️ `machines` (CRITICAL - Most Changes) **Columns Removed in Dev (exist in backup):** - `ipaddress1` - Removed (now in communications table) - `ipaddress2` - Removed (now in communications table) **Columns Added in Dev (not in backup):** - `hostname` - For PC hostnames - `serialnumber` - Equipment serial numbers - `loggedinuser` - Current logged-in user (PCs) - `pctypeid` - Identifies PCs (NULL = equipment, NOT NULL = PC) - `osid` - Foreign key to operatingsystems (PC OS) - `controllertypeid` - Foreign key to controllertypes - `controllerosid` - Controller OS (for CNCs) - `controllermodelid` - Controller model reference - `machinestatusid` - Replaces pcstatusid - `lastupdated` - Auto-updated timestamp - `requires_manual_machine_config` - Configuration flag **Impact:** This is the core table for Phase 2 migration. Reverting will break all PC and network device functionality. --- #### ⚠️ `businessunits` **Columns Added in Dev (not in backup):** - `liaisonname` - Liaison contact name - `liaisonsso` - Liaison SSO - `facility_id` - Facility identifier - `dt_lead` - DT Lead name - `dt_lead_sso` - DT Lead SSO **Impact:** Minor. These are additional metadata fields that don't affect core functionality. --- #### ⚠️ `controllertypes` **Columns Added in Dev (not in backup):** - `vendorid` - Foreign key to vendors - `controllermodel` - Controller model name - `controller_os` - Controller OS name - `controllernotes` - Additional notes **Impact:** Minor. Enhanced metadata for CNC controllers. --- #### ⚠️ `machine_overrides` **Issue:** Same columns but definition differences (likely data types or constraints changed) **Impact:** Unknown without detailed field-by-field comparison. --- ## New Tables in Dev (Phase 2 Migration) These 8 tables exist in the current dev database but NOT in the backup file. They are **Phase 2 migration tables** and should be **preserved**. ### Phase 2 Tables (DO NOT DROP) 1. **`communications`** - Unified network interface storage (replaces pc_network_interfaces, printer IPs) 2. **`comstypes`** - Communication types (IP, Serial, USB, etc.) 3. **`compliance`** - Compliance tracking data 4. **`compliancescans`** - Compliance scan history 5. **`machinerelationships`** - Machine-to-machine relationships (dualpath, controls) 6. **`relationshiptypes`** - Relationship type definitions 7. **`machinestatus`** - Replaces pcstatus with broader scope 8. **`warranties`** - Warranty tracking **These tables are critical for Phase 2 functionality and should NOT be dropped.** --- ## Legacy Tables in Backup (Not in Dev) These 41 tables exist in the backup file but NOT in the current dev database. Most are **deprecated** or **views**. ### Deprecated PC Tables (Replaced by machines + communications) - `pc` - **DEPRECATED** → Replaced by machines WHERE pctypeid IS NOT NULL - `pc_network_interfaces` - **DEPRECATED** → Replaced by communications - `pc_comm_config` - **DEPRECATED** → Replaced by communications - `pc_dnc_config` - **DEPRECATED** → Integrated into machine relationships - `pc_dualpath_assignments` - **DEPRECATED** → Replaced by machinerelationships - `pctype` - **DEPRECATED** → Now stored in machines.pctypeid - `pcstatus` - **DEPRECATED** → Replaced by machinestatus ### Deprecated Network Device Tables (Replaced by machines) - `accesspoints` - **DEPRECATED** → Replaced by machines WHERE machinetypeid = 16 - `cameras` - **DEPRECATED** → Replaced by machines WHERE machinetypeid = 18 - `switches` - **DEPRECATED** → Replaced by machines WHERE machinetypeid = 19 - `servers` - **DEPRECATED** → Replaced by machines WHERE machinetypeid = 20 - `idfs` - **DEPRECATED** → Replaced by machines WHERE machinetypeid = 17 ### Legacy Relationship Table - `machine_pc_relationships` - **DEPRECATED** → Replaced by machinerelationships ### Backup Table - `pc_model_backup` - Backup table (can be dropped) ### Views (33 views) All views with `vw_` prefix are query views, not base tables: - `vw_active_pcs` - `vw_dnc_config` - `vw_dualpath_management` - `vw_engineer_pcs` - `vw_ge_machines` - `vw_idf_inventory` - `vw_infrastructure_summary` - `vw_machine_assignments` - `vw_machine_assignment_status` - `vw_machinetype_comparison` - `vw_machine_type_stats` - `vw_multi_pc_machines` - `vw_network_devices` - `vw_pc_network_summary` - `vw_pc_resolved_machines` - `vw_pcs_by_hardware` - `vw_pc_summary` - `vw_pctype_config` - `vw_recent_updates` - `vw_shopfloor_applications_summary` - `vw_shopfloor_comm_config` - `vw_shopfloor_pcs` - `vw_standard_pcs` - `vw_unmapped_machines` - `vw_vendor_summary` - `vw_warranties_expiring` - `vw_warranty_status` **Note:** Views need to be recreated to match Phase 2 schema. --- ## Recommendation: What to Drop and Recreate ### ⚠️ CRITICAL WARNING **DO NOT apply the backup file schema if you want to keep Phase 2 functionality!** The backup file represents the **OLD Phase 1 schema** before the major PC migration work completed on Nov 17, 2025. Applying it would: 1. ❌ Lose all Phase 2 migration work (20+ days of development) 2. ❌ Break all PC pages (displaypcs.asp, displaypc.asp, editpc.asp, etc.) 3. ❌ Break network device display (network_map.asp, network_devices.asp) 4. ❌ Lose unified communications table 5. ❌ Lose machine relationships functionality 6. ❌ Lose compliance tracking 7. ❌ Lose warranty management ### If You Must Revert to Backup Schema **Tables to DROP and recreate from backup:** 1. ✅ `machines` - DROP and recreate (loses Phase 2 columns) 2. ✅ `businessunits` - DROP and recreate (loses liaison/facility fields) 3. ✅ `controllertypes` - DROP and recreate (loses enhanced metadata) 4. ✅ `machine_overrides` - DROP and recreate (definition changes) **Tables to DROP from dev (Phase 2 tables):** 5. ❌ `communications` - DROP (then recreate from backup if needed) 6. ❌ `comstypes` - DROP 7. ❌ `compliance` - DROP 8. ❌ `compliancescans` - DROP 9. ❌ `machinerelationships` - DROP 10. ❌ `relationshiptypes` - DROP 11. ❌ `machinestatus` - DROP (will recreate `pcstatus` from backup) 12. ❌ `warranties` - DROP **Tables to ADD from backup (legacy tables):** 13. ➕ `pc` - CREATE from backup 14. ➕ `pc_network_interfaces` - CREATE from backup 15. ➕ `pc_comm_config` - CREATE from backup 16. ➕ `pc_dnc_config` - CREATE from backup 17. ➕ `pc_dualpath_assignments` - CREATE from backup 18. ➕ `pctype` - CREATE from backup 19. ➕ `pcstatus` - CREATE from backup 20. ➕ `accesspoints` - CREATE from backup (if needed) 21. ➕ `cameras` - CREATE from backup (if needed) 22. ➕ `switches` - CREATE from backup (if needed) 23. ➕ `servers` - CREATE from backup (if needed) 24. ➕ `idfs` - CREATE from backup (if needed) 25. ➕ `machine_pc_relationships` - CREATE from backup **Views to recreate (33 views):** All `vw_*` views need to be dropped and recreated from backup. --- ## Recommended Action Plan ### Option 1: Keep Phase 2 Schema (RECOMMENDED) **DO NOTHING.** Your current dev database is the latest Phase 2 schema with all improvements. The backup file is outdated and should not be applied unless you need to revert Phase 2 changes. ### Option 2: Sync Backup File to Match Dev If the backup file is supposed to be the "source of truth", then UPDATE the backup file to include Phase 2 schema: 1. Export current dev schema: `mysqldump shopdb > new-phase2-backup.sql` 2. Replace old backup file with Phase 2 schema 3. Use Phase 2 schema for future deployments ### Option 3: Revert to Backup Schema (NOT RECOMMENDED) If you absolutely must revert to Phase 1 schema: 1. Backup current dev database (already done: dev-backup-20251120-105614.sql) 2. Drop Phase 2 tables: communications, compliance, machinerelationships, etc. 3. Restore machines, businessunits, controllertypes to backup versions 4. Restore all legacy tables (pc, pc_network_interfaces, etc.) 5. Recreate all views 6. **Accept that all Phase 2 functionality will be lost** --- ## Table Count Summary | Category | Backup File | Dev Database | Difference | |----------|-------------|--------------|------------| | **Total Tables** | 63 | 30 | -33 | | **Base Tables** | 36 | 30 | -6 | | **Views** | 27 | 0 | -27 | | **Schema Changes** | - | 4 | - | | **New in Dev** | - | 8 | +8 | | **Missing in Dev** | 41 | - | - | --- ## Files Generated 1. **Current Dev Backup:** `/home/camp/projects/windows/shopdb/sql/dev-backup-20251120-105614.sql` (464 KB) 2. **This Report:** `/home/camp/projects/windows/shopdb/SCHEMA_COMPARISON_REPORT_2025-11-20.md` --- ## Conclusion **The backup file (database-backup-11-20-25-eod-with-drop.sql) is from BEFORE Phase 2 migration.** Your current dev database has the **Phase 2 schema** with significant improvements: - ✅ Unified machines table for all infrastructure - ✅ Consolidated communications table - ✅ Machine relationships tracking - ✅ Compliance management - ✅ Warranty tracking **Recommendation:** Do NOT apply the backup file schema. Keep your current Phase 2 dev schema. If production needs updating, use your current dev schema as the source, not the backup file. --- **Generated:** 2025-11-20 10:56 **Analyst:** Claude Code **Status:** Analysis Complete ✅