121 lines
3.1 KiB
Markdown
121 lines
3.1 KiB
Markdown
# Helper Scripts
|
|
|
|
This directory contains helper scripts for database management and testing.
|
|
|
|
## Database Migration Scripts
|
|
|
|
### migrate_dev_db.py
|
|
Migrates the DEV database schema to add SLM-specific columns to the `roster` table.
|
|
|
|
**Usage:**
|
|
```bash
|
|
cd /home/serversdown/sfm/seismo-fleet-manager
|
|
python3 scripts/migrate_dev_db.py
|
|
```
|
|
|
|
**What it does:**
|
|
- Adds 8 SLM-specific columns to the DEV database (data-dev/seismo_fleet.db)
|
|
- Columns: slm_host, slm_tcp_port, slm_model, slm_serial_number, slm_frequency_weighting, slm_time_weighting, slm_measurement_range, slm_last_check
|
|
- Safe to run multiple times (skips existing columns)
|
|
|
|
### update_dev_db_schema.py
|
|
Inspects and displays the DEV database schema.
|
|
|
|
**Usage:**
|
|
```bash
|
|
python3 scripts/update_dev_db_schema.py
|
|
```
|
|
|
|
**What it does:**
|
|
- Shows all tables in the DEV database
|
|
- Lists all columns in the roster table
|
|
- Useful for verifying schema after migrations
|
|
|
|
## Test Data Scripts
|
|
|
|
### add_test_slms.py
|
|
Adds test Sound Level Meter units to the DEV database.
|
|
|
|
**Usage:**
|
|
```bash
|
|
python3 scripts/add_test_slms.py
|
|
```
|
|
|
|
**What it creates:**
|
|
- nl43-001: NL-43 SLM at Construction Site A
|
|
- nl43-002: NL-43 SLM at Construction Site B
|
|
- nl53-001: NL-53 SLM at Residential Area
|
|
- nl43-003: NL-43 SLM (not deployed, spare unit)
|
|
|
|
### add_test_modems.py
|
|
Adds test modem units to the DEV database and assigns them to SLMs.
|
|
|
|
**Usage:**
|
|
```bash
|
|
python3 scripts/add_test_modems.py
|
|
```
|
|
|
|
**What it creates:**
|
|
- modem-001, modem-002, modem-003: Deployed modems (Raven XTV and Sierra Wireless)
|
|
- modem-004: Spare modem (not deployed)
|
|
|
|
**Modem assignments:**
|
|
- nl43-001 → modem-001
|
|
- nl43-002 → modem-002
|
|
- nl53-001 → modem-003
|
|
|
|
## Cleanup Scripts
|
|
|
|
### remove_test_data_from_prod.py
|
|
**⚠️ PRODUCTION DATABASE CLEANUP**
|
|
|
|
Removes test data from the production database (data/seismo_fleet.db).
|
|
|
|
**Status:** Already executed successfully. Production database is clean.
|
|
|
|
**What it removed:**
|
|
- All test SLM units (nl43-001, nl43-002, nl53-001, nl43-003)
|
|
- All test modem units (modem-001, modem-002, modem-003, modem-004)
|
|
|
|
## Database Cloning
|
|
|
|
### clone_db_to_dev.py
|
|
Clones the production database to create/update the DEV database.
|
|
|
|
**Usage:**
|
|
```bash
|
|
python3 scripts/clone_db_to_dev.py
|
|
```
|
|
|
|
**What it does:**
|
|
- Copies data/seismo_fleet.db → data-dev/seismo_fleet.db
|
|
- Useful for syncing DEV database with production schema/data
|
|
|
|
## Setup Sequence
|
|
|
|
To set up a fresh DEV database with test data:
|
|
|
|
```bash
|
|
cd /home/serversdown/sfm/seismo-fleet-manager
|
|
|
|
# 1. Fix permissions (if needed)
|
|
sudo chown -R serversdown:serversdown data-dev/
|
|
|
|
# 2. Migrate schema
|
|
python3 scripts/migrate_dev_db.py
|
|
|
|
# 3. Add test data
|
|
python3 scripts/add_test_slms.py
|
|
python3 scripts/add_test_modems.py
|
|
|
|
# 4. Verify
|
|
sqlite3 data-dev/seismo_fleet.db "SELECT id, device_type FROM roster WHERE device_type IN ('sound_level_meter', 'modem');"
|
|
```
|
|
|
|
## Important Notes
|
|
|
|
- **DEV Database**: `data-dev/seismo_fleet.db` - Used for development and testing
|
|
- **Production Database**: `data/seismo_fleet.db` - Used by the running application
|
|
- All test scripts are configured to use the DEV database only
|
|
- Never run test data scripts against production
|