Reorganize repo: compartmentalize scripts by client/project
Move 150+ scripts from root and scripts/ into client/project directories: - clients/dataforth/scripts/ (110 files: AD2, sync, SSH, DB, DOS scripts) - clients/bg-builders/scripts/ (14 files: Lesley mgmt, Exchange, termination) - clients/internal-infrastructure/scripts/ (10 files: GDAP, Gitea, backups) - projects/msp-tools/scripts/ (9 files: CIPP, MSP onboarding, Datto) - projects/gururmm-agent/scripts/ (3 files: API test, JWT, record counts) - clients/glaztech/scripts/ (1 file: CentraStage removal) Also reorganized: - VPN scripts → infrastructure/vpn-configs/ - Retrieved API/JS files → api/ - Forum posts → projects/community-forum/forum-posts/ - SSH docs → clients/internal-infrastructure/docs/ - NWTOC/CTONW docs → projects/wrightstown-smarthome/docs/ - ACG website files → projects/internal/acg-website-2025/ - Dataforth docs → clients/dataforth/docs/ - schema-retrieved.sql → docs/database/ Deleted 24 tmp_*.ps1 one-off debug scripts (preserved in git history). Root reduced from 220+ files to 62 items (docs + directories only). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
53
docs/database/schema-retrieved.sql
Normal file
53
docs/database/schema-retrieved.sql
Normal file
@@ -0,0 +1,53 @@
|
||||
-- Test Data Database Schema
|
||||
-- SQLite database for storing and searching test records
|
||||
|
||||
-- Main test records table
|
||||
CREATE TABLE IF NOT EXISTS test_records (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
log_type TEXT NOT NULL, -- DSCLOG, 5BLOG, 7BLOG, 8BLOG, PWRLOG, SCTLOG, VASLOG, SHT
|
||||
model_number TEXT NOT NULL, -- DSCA38-1793, SCM5B30-01, etc.
|
||||
serial_number TEXT NOT NULL, -- 176923-1, 105840-2, etc.
|
||||
test_date TEXT NOT NULL, -- Test date (YYYY-MM-DD format)
|
||||
test_station TEXT, -- TS-1L, TS-3R, etc.
|
||||
overall_result TEXT, -- PASS/FAIL
|
||||
raw_data TEXT, -- Full original record
|
||||
source_file TEXT, -- Original file path
|
||||
import_date TEXT DEFAULT (datetime('now')),
|
||||
UNIQUE(log_type, model_number, serial_number, test_date, test_station)
|
||||
);
|
||||
|
||||
-- Indexes for fast searching
|
||||
CREATE INDEX IF NOT EXISTS idx_serial ON test_records(serial_number);
|
||||
CREATE INDEX IF NOT EXISTS idx_model ON test_records(model_number);
|
||||
CREATE INDEX IF NOT EXISTS idx_date ON test_records(test_date);
|
||||
CREATE INDEX IF NOT EXISTS idx_model_serial ON test_records(model_number, serial_number);
|
||||
CREATE INDEX IF NOT EXISTS idx_result ON test_records(overall_result);
|
||||
CREATE INDEX IF NOT EXISTS idx_log_type ON test_records(log_type);
|
||||
|
||||
-- Full-text search virtual table
|
||||
CREATE VIRTUAL TABLE IF NOT EXISTS test_records_fts USING fts5(
|
||||
serial_number,
|
||||
model_number,
|
||||
raw_data,
|
||||
content='test_records',
|
||||
content_rowid='id'
|
||||
);
|
||||
|
||||
-- Triggers to keep FTS index in sync
|
||||
CREATE TRIGGER IF NOT EXISTS test_records_ai AFTER INSERT ON test_records BEGIN
|
||||
INSERT INTO test_records_fts(rowid, serial_number, model_number, raw_data)
|
||||
VALUES (new.id, new.serial_number, new.model_number, new.raw_data);
|
||||
END;
|
||||
|
||||
CREATE TRIGGER IF NOT EXISTS test_records_ad AFTER DELETE ON test_records BEGIN
|
||||
INSERT INTO test_records_fts(test_records_fts, rowid, serial_number, model_number, raw_data)
|
||||
VALUES ('delete', old.id, old.serial_number, old.model_number, old.raw_data);
|
||||
END;
|
||||
|
||||
CREATE TRIGGER IF NOT EXISTS test_records_au AFTER UPDATE ON test_records BEGIN
|
||||
INSERT INTO test_records_fts(test_records_fts, rowid, serial_number, model_number, raw_data)
|
||||
VALUES ('delete', old.id, old.serial_number, old.model_number, old.raw_data);
|
||||
INSERT INTO test_records_fts(rowid, serial_number, model_number, raw_data)
|
||||
VALUES (new.id, new.serial_number, new.model_number, new.raw_data);
|
||||
END;
|
||||
|
||||
Reference in New Issue
Block a user