What I walked into
SPSG was moving from an older .NET/MySQL system to a new NestJS/PostgreSQL application. I was the engineer focused on mapping and moving the legacy data into the new schema.
Mapped and migrated an entire legacy MySQL data model into a new NestJS/PostgreSQL platform, covering roughly 23,000 users plus related records.

SPSG was moving from an older .NET/MySQL system to a new NestJS/PostgreSQL application. I was the engineer focused on mapping and moving the legacy data into the new schema.
The schemas did not match one-for-one, and legacy records did not always satisfy the validation rules of the new application. The migration needed to preserve as much data as possible without silently hiding failures.
Mapped the old schema to the new model and wrote migration scripts in the new TypeScript/NestJS system that connected directly to the legacy MySQL database.
Migrated the database table by table, covering roughly 23,000 users plus the wider set of related records rather than only the user table.
Used transactions and rollback behavior where a record needed all-or-nothing validation.
For records that could not satisfy the new validation rules, skipped them deliberately and kept a history of what failed and how many records completed.
Ran and verified the migration in development environments before handoff/cutover work continued.
The migration scripts gave the team a repeatable path from the legacy MySQL model into PostgreSQL while keeping validation failures visible instead of losing them silently.