Managing those huge folders of V142. sql files is such a nightmare during merges. It's always some mess of conflicting scripts when two people branch off main at the same time. I saw this library
SchemaSynchronizer that tries to do it declaratively like Terraform does for infra. You just keep a single schema-definition.json file and let it figure out the diff.
{ "tables": { "work_items": { "columns": [ {"name": "id", "definition": "UUID PRIMARY KEY"} ] } }}It looks clean on paper, but I'm worried about what happens during a complex refactor. If it just reconciles the state, it might try to drop and recreate things by mistake. Never trust an automated tool to handle heavy data migrations without checking the plan first.
more here:
https://dzone.com/articles/declarative-database-schema-management