# DEV Database Setup Instructions

## Current Situation

The test SLM and modem data was accidentally added to the **PRODUCTION** database (`data/seismo_fleet.db`).

**Good news**: I've already removed it! The production database is clean.

**Issue**: The DEV database (`data-dev/seismo_fleet.db`) is:
1. Owned by root (read-only for your user)
2. Missing the SLM-specific columns in its schema

## What You Need to Do

### Step 1: Fix DEV Database Permissions

Run this command to make the DEV database writable:

```bash
cd /home/serversdown/sfm/seismo-fleet-manager
sudo chown serversdown:serversdown data-dev/seismo_fleet.db
sudo chmod 664 data-dev/seismo_fleet.db
```

### Step 2: Migrate DEV Database Schema

Add the SLM columns to the DEV database:

```bash
python3 scripts/migrate_dev_db.py
```

This will add these columns to the `roster` table:
- `slm_host`
- `slm_tcp_port`
- `slm_model`
- `slm_serial_number`
- `slm_frequency_weighting`
- `slm_time_weighting`
- `slm_measurement_range`
- `slm_last_check`

### Step 3: Add Test Data to DEV

Now you can safely add test data to the DEV database:

```bash
# Add test SLMs
python3 scripts/add_test_slms.py

# Add test modems and assign to SLMs
python3 scripts/add_test_modems.py
```

This will create:
- 4 test SLM units (nl43-001, nl43-002, nl53-001, nl43-003)
- 4 test modem units (modem-001, modem-002, modem-003, modem-004)
- Assign modems to the SLMs

## Production Database Status

✅ **Production database is CLEAN** - all test data has been removed.

The production database (`data/seismo_fleet.db`) is ready for real production use.

## Test Scripts

All test scripts have been updated to use the DEV database:

### Scripts Updated:
1. `scripts/add_test_slms.py` - Now uses `data-dev/seismo_fleet.db`
2. `scripts/add_test_modems.py` - Now uses `data-dev/seismo_fleet.db`

### Scripts Created:
1. `scripts/remove_test_data_from_prod.py` - Removes test data from production (already run)
2. `scripts/update_dev_db_schema.py` - Updates schema (doesn't work for SQLite ALTER)
3. `scripts/migrate_dev_db.py` - Adds SLM columns to DEV database

All helper scripts are located in the `scripts/` directory. See [scripts/README.md](../scripts/README.md) for detailed usage instructions.

## Verification

After running the steps above, verify everything worked:

```bash
# Check DEV database has test data
sqlite3 data-dev/seismo_fleet.db "SELECT id, device_type FROM roster WHERE device_type IN ('sound_level_meter', 'modem');"
```

You should see:
```
nl43-001|sound_level_meter
nl43-002|sound_level_meter
nl53-001|sound_level_meter
nl43-003|sound_level_meter
modem-001|modem
modem-002|modem
modem-003|modem
modem-004|modem
```

## Development vs Production

### When to Use DEV Database

To use the DEV database, set the environment variable:

```bash
# Not implemented yet, but you could add this to database.py:
export DATABASE_ENV=dev
```

Or modify `backend/database.py` to check for an environment variable.

### Current Setup

Right now, the application always uses `data/seismo_fleet.db` (production).

For development/testing, you could:
1. Point SFM to use the DEV database temporarily
2. Or keep test data in production (not recommended)
3. Or implement environment-based database selection

## Summary

- ✅ Production DB cleaned (no test data)
- ⚠️  DEV DB needs permission fix (run sudo commands above)
- ⚠️  DEV DB needs schema migration (run scripts/migrate_dev_db.py)
- ✅ Test scripts updated to use DEV DB
- ✅ All test data ready to be added to DEV DB

Run the commands above and you'll be all set!
