- Add shared utility function to make migrations idempotent (IF NOT EXISTS)
- Update migration generation scripts to use shared utility
- Fix existing migration file to use IF NOT EXISTS clauses
- Add comprehensive test suite with 23 test cases covering edge cases
- Ensure all future migrations are automatically idempotent
This prevents migration failures when columns/indexes already exist,
making migrations safe to re-run on databases that were manually fixed.