Initial import: shopdb-flask multi-site asset platform
Flask + Vue rewrite of the classic-ASP shopdb, built as a plugin framework so sister GE Aerospace sites can adopt it. Product version 0.7.0-pre-0.8.0, plugin contract 0.11.0, 966 backend tests. Key entry points: - docs/INSTALL-WINDOWS-IIS.md - tested Windows + IIS install runbook (own-site and subpath deployment methods) - docs/PILOT-DEPLOY.md - production pilot: stand up + import + verify - docs/IMPORT-API.md - schema-agnostic legacy data import contract - scripts/site_imports/wjf/ - West Jefferson reference import loader - docs/adr/ - twelve accepted architecture decision records
This commit is contained in:
88
scripts/migration/fix_legacy_schema.sql
Normal file
88
scripts/migration/fix_legacy_schema.sql
Normal file
@@ -0,0 +1,88 @@
|
||||
-- =============================================================================
|
||||
-- Legacy Schema Migration Script
|
||||
-- Adds missing columns to make VBScript ShopDB compatible with Flask ShopDB
|
||||
-- =============================================================================
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- appowners table
|
||||
-- -----------------------------------------------------------------------------
|
||||
ALTER TABLE appowners
|
||||
ADD COLUMN IF NOT EXISTS email VARCHAR(100) NULL,
|
||||
ADD COLUMN IF NOT EXISTS phone VARCHAR(50) NULL,
|
||||
ADD COLUMN IF NOT EXISTS createddate DATETIME DEFAULT NOW(),
|
||||
ADD COLUMN IF NOT EXISTS modifieddate DATETIME DEFAULT NOW(),
|
||||
ADD COLUMN IF NOT EXISTS isactive TINYINT(1) DEFAULT 1;
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- pctypes / computertypes alignment
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- The Flask app uses pctype table but expects certain columns
|
||||
ALTER TABLE pctype
|
||||
ADD COLUMN IF NOT EXISTS createddate DATETIME DEFAULT NOW(),
|
||||
ADD COLUMN IF NOT EXISTS modifieddate DATETIME DEFAULT NOW();
|
||||
|
||||
-- Ensure isactive is correct type
|
||||
ALTER TABLE pctype MODIFY COLUMN isactive TINYINT(1) DEFAULT 1;
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- statuses table (if needed - Flask uses assetstatuses)
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- assetstatuses already populated earlier
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- subnets table
|
||||
-- -----------------------------------------------------------------------------
|
||||
ALTER TABLE subnets
|
||||
ADD COLUMN IF NOT EXISTS createddate DATETIME DEFAULT NOW(),
|
||||
ADD COLUMN IF NOT EXISTS modifieddate DATETIME DEFAULT NOW(),
|
||||
ADD COLUMN IF NOT EXISTS isactive TINYINT(1) DEFAULT 1;
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- vlans table
|
||||
-- -----------------------------------------------------------------------------
|
||||
ALTER TABLE vlans
|
||||
ADD COLUMN IF NOT EXISTS createddate DATETIME DEFAULT NOW(),
|
||||
ADD COLUMN IF NOT EXISTS modifieddate DATETIME DEFAULT NOW(),
|
||||
ADD COLUMN IF NOT EXISTS isactive TINYINT(1) DEFAULT 1;
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- usbdevices table
|
||||
-- -----------------------------------------------------------------------------
|
||||
ALTER TABLE usbdevices
|
||||
ADD COLUMN IF NOT EXISTS createddate DATETIME DEFAULT NOW(),
|
||||
ADD COLUMN IF NOT EXISTS modifieddate DATETIME DEFAULT NOW(),
|
||||
ADD COLUMN IF NOT EXISTS isactive TINYINT(1) DEFAULT 1;
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- usbcheckouts table
|
||||
-- -----------------------------------------------------------------------------
|
||||
ALTER TABLE usbcheckouts
|
||||
ADD COLUMN IF NOT EXISTS createddate DATETIME DEFAULT NOW(),
|
||||
ADD COLUMN IF NOT EXISTS modifieddate DATETIME DEFAULT NOW();
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- notifications table
|
||||
-- -----------------------------------------------------------------------------
|
||||
ALTER TABLE notifications
|
||||
ADD COLUMN IF NOT EXISTS createddate DATETIME DEFAULT NOW(),
|
||||
ADD COLUMN IF NOT EXISTS modifieddate DATETIME DEFAULT NOW();
|
||||
|
||||
-- Copy dates from existing columns if they exist
|
||||
UPDATE notifications SET createddate = startdate WHERE createddate IS NULL;
|
||||
UPDATE notifications SET modifieddate = startdate WHERE modifieddate IS NULL;
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- Verify key counts
|
||||
-- -----------------------------------------------------------------------------
|
||||
SELECT 'Migration complete. Record counts:' as status;
|
||||
SELECT 'vendors' as tbl, COUNT(*) as cnt FROM vendors
|
||||
UNION ALL SELECT 'models', COUNT(*) FROM models
|
||||
UNION ALL SELECT 'machinetypes', COUNT(*) FROM machinetypes
|
||||
UNION ALL SELECT 'operatingsystems', COUNT(*) FROM operatingsystems
|
||||
UNION ALL SELECT 'businessunits', COUNT(*) FROM businessunits
|
||||
UNION ALL SELECT 'applications', COUNT(*) FROM applications
|
||||
UNION ALL SELECT 'machines', COUNT(*) FROM machines
|
||||
UNION ALL SELECT 'printers', COUNT(*) FROM printers
|
||||
UNION ALL SELECT 'assets', COUNT(*) FROM assets
|
||||
UNION ALL SELECT 'knowledgebase', COUNT(*) FROM knowledgebase
|
||||
UNION ALL SELECT 'notifications', COUNT(*) FROM notifications;
|
||||
Reference in New Issue
Block a user