Investigation and Documentation: - Discovered and documented test database system on AD2 server - Created comprehensive TEST_DATABASE_ARCHITECTURE.md with full system details - Retrieved all key database files from AD2 (import.js, schema.sql, server configs) - Documented data flow: DOS machines → NAS → AD2 → SQLite → Web interface - Verified database health: 1,027,517 records, 1075 MB, dates back to 1990 Database System Architecture: - SQLite database with Node.js/Express.js web server (port 3000) - Automated import via Sync-FromNAS.ps1 (runs every 15 minutes) - 8 log types supported: DSCLOG, 5BLOG, 7BLOG, 8BLOG, PWRLOG, SCTLOG, VASLOG, SHT - FTS5 full-text search, comprehensive indexes for performance - API endpoints: search, stats, export, datasheet generation Troubleshooting Scripts Created: - Database diagnostics: check-db-simple.ps1, test-db-directly.ps1 - Server status checks: check-node-running.ps1, check-db-server.ps1 - Performance analysis: check-db-performance.ps1, check-wal-files.ps1 - API testing: test-api-endpoint.ps1, test-query.js - Import monitoring: check-new-records.ps1 - Database optimization attempts: api-js-optimized.js, api-js-fixed.js - Deployment scripts: deploy-db-optimization.ps1, deploy-db-fix.ps1, restore-original.ps1 Key Findings: - Database file healthy and queryable (verified with test-query.js) - Node.js server not running (port 3000 closed) - root cause of web interface issues - Database last updated 8 days ago (01/13/2026) - automated sync may be broken - Attempted performance optimizations (WAL mode) incompatible with readonly connections - Original api.js restored from backup after optimization conflicts Retrieved Documentation: - QUICKSTART-retrieved.md: Quick start guide for database server - SESSION_NOTES-retrieved.md: Complete session notes from database creation - Sync-FromNAS-retrieved.ps1: Full sync script with database import logic - import-js-retrieved.js: Node.js import script (12,774 bytes) - schema-retrieved.sql: SQLite schema with FTS5 triggers - server-js-retrieved.js: Express.js server configuration - api-js-retrieved.js: API routes and endpoints - package-retrieved.json: Node.js dependencies Action Items Identified: 1. Start Node.js server on AD2 to restore web interface functionality 2. Investigate why automated sync hasn't updated database in 8 days 3. Check Windows Task Scheduler for Sync-FromNAS.ps1 scheduled task 4. Run manual import to catch up on 8 days of test data if needed Technical Details: - Database path: C:\Shares\testdatadb\database\testdata.db - Web interface: http://192.168.0.6:3000 (when running) - Database size: 1075.14 MB (1,127,362,560 bytes) - Total records: 1,027,517 (slight variance from original 1,030,940) - Pass rate: 99.82% (1,029,046 passed, 1,888 failed) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
90 lines
3.8 KiB
PowerShell
90 lines
3.8 KiB
PowerShell
# Check for new test data files that need importing
|
|
$password = ConvertTo-SecureString 'Paper123!@#' -AsPlainText -Force
|
|
$cred = New-Object System.Management.Automation.PSCredential('INTRANET\sysadmin', $password)
|
|
|
|
Write-Host "========================================" -ForegroundColor Cyan
|
|
Write-Host "Test Data Import Status Check" -ForegroundColor Cyan
|
|
Write-Host "========================================`n" -ForegroundColor Cyan
|
|
|
|
Write-Host "[1/4] Mounting AD2 C$ share..." -ForegroundColor Green
|
|
New-PSDrive -Name AD2 -PSProvider FileSystem -Root "\\192.168.0.6\C$" -Credential $cred -ErrorAction Stop | Out-Null
|
|
|
|
# Check database last modified time
|
|
Write-Host "`n[2/4] Checking database status..." -ForegroundColor Green
|
|
$dbFile = Get-Item "AD2:\Shares\testdatadb\database\testdata.db"
|
|
Write-Host " Database last modified: $($dbFile.LastWriteTime)" -ForegroundColor Cyan
|
|
Write-Host " Database size: $([math]::Round($dbFile.Length/1MB,2)) MB" -ForegroundColor Cyan
|
|
|
|
# Check for new DAT files in test folders
|
|
Write-Host "`n[3/4] Checking for new test data files..." -ForegroundColor Green
|
|
|
|
$logTypes = @("8BLOG", "DSCLOG", "7BLOG", "5BLOG", "PWRLOG", "VASLOG", "SCTLOG", "HVLOG", "RMSLOG")
|
|
$testStations = @("TS-1L", "TS-3R", "TS-4L", "TS-4R", "TS-8R", "TS-10L", "TS-11L")
|
|
|
|
$newFiles = @()
|
|
$cutoffTime = $dbFile.LastWriteTime
|
|
|
|
foreach ($station in $testStations) {
|
|
foreach ($logType in $logTypes) {
|
|
$path = "AD2:\Shares\test\$station\LOGS\$logType"
|
|
|
|
if (Test-Path $path) {
|
|
$files = Get-ChildItem $path -Filter "*.DAT" -ErrorAction SilentlyContinue |
|
|
Where-Object { $_.LastWriteTime -gt $cutoffTime }
|
|
|
|
if ($files) {
|
|
foreach ($file in $files) {
|
|
$newFiles += [PSCustomObject]@{
|
|
Station = $station
|
|
LogType = $logType
|
|
FileName = $file.Name
|
|
Size = [math]::Round($file.Length/1KB, 2)
|
|
Modified = $file.LastWriteTime
|
|
Path = $file.FullName
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if ($newFiles.Count -gt 0) {
|
|
Write-Host " [FOUND] $($newFiles.Count) new files since last import:" -ForegroundColor Yellow
|
|
$newFiles | Format-Table Station, LogType, FileName, @{Name='Size(KB)';Expression={$_.Size}}, Modified -AutoSize | Out-String | Write-Host
|
|
} else {
|
|
Write-Host " [OK] No new files found - database is up to date" -ForegroundColor Green
|
|
}
|
|
|
|
# Check sync script log
|
|
Write-Host "`n[4/4] Checking sync log..." -ForegroundColor Green
|
|
$syncLog = "AD2:\Shares\test\scripts\sync-from-nas.log"
|
|
|
|
if (Test-Path $syncLog) {
|
|
Write-Host " [OK] Sync log exists" -ForegroundColor Green
|
|
$logFile = Get-Item $syncLog
|
|
Write-Host " Last modified: $($logFile.LastWriteTime)" -ForegroundColor Cyan
|
|
|
|
Write-Host " Last 10 log entries:" -ForegroundColor Cyan
|
|
$lastLines = Get-Content $syncLog -Tail 10
|
|
$lastLines | ForEach-Object { Write-Host " $_" -ForegroundColor Gray }
|
|
} else {
|
|
Write-Host " [WARNING] Sync log not found at: $syncLog" -ForegroundColor Yellow
|
|
}
|
|
|
|
Remove-PSDrive -Name AD2 -ErrorAction SilentlyContinue
|
|
|
|
Write-Host "`n========================================" -ForegroundColor Cyan
|
|
Write-Host "Summary" -ForegroundColor Cyan
|
|
Write-Host "========================================" -ForegroundColor Cyan
|
|
|
|
if ($newFiles.Count -gt 0) {
|
|
Write-Host "[ACTION REQUIRED] Import new files:" -ForegroundColor Yellow
|
|
Write-Host " cd C:\Shares\testdatadb" -ForegroundColor Cyan
|
|
Write-Host " node database\import.js" -ForegroundColor Cyan
|
|
Write-Host "`n Or wait for automatic import (runs every 15 minutes)" -ForegroundColor Gray
|
|
} else {
|
|
Write-Host "[OK] Database is current - no import needed" -ForegroundColor Green
|
|
}
|
|
|
|
Write-Host "========================================`n" -ForegroundColor Cyan
|