# scripts/migration (superseded)

The direct-SQL migrators that used to live here (`migrate_assets.py`,
`migrate_communications.py`, `migrate_notifications.py`, `migrate_usb.py`,
`run_migration.py`, `verify_migration.py`) and `scripts/import_from_mysql.py`
were **removed** - they had drifted badly out of sync with the current schema
(they targeted a nonexistent `equipment` table, the retired `Machine` model, and
columns that no longer exist) and were actively misleading.

## Use the import API + a site loader instead

Legacy data is imported through the maintained, schema-agnostic contract in
[`docs/IMPORT-API.md`](../../docs/IMPORT-API.md) (create through real endpoints
with an admin PAT + `X-Import-Mode`). Each adopting site writes a thin loader
that reads its own source database and drives that API.

- Reference implementation: [`scripts/site_imports/wjf/`](../site_imports/wjf/)
  (West Jefferson classic-ASP -> flask).
- Adoption playbook: [`docs/IMPORT-ADOPTION.md`](../../docs/IMPORT-ADOPTION.md).

## What's kept here

- `fix_legacy_schema.sql` - one-time SQL fixups against a legacy source DB.
- `one-offs/` - individual one-shot SQL snippets (see its README).
