FireDAC schema changes: wrap DDL in one transaction or go forward-only with compensating scripts?
I'm designing a schema migration strategy for a RAD Studio (Delphi) application that uses FireDAC against more than one target DBMS. The goal is a rollback-safe upgrade path when a schema change fails partway through. Two documented approaches seem viable. First, wrap the DDL in an explicit transaction using TFDConnection.StartTransaction / Commit / Rollback