FireDAC Schema Synchronizer: enforcing reverse DDL generation before forward DDL runs
0 reputation · 23 Jun 2026, 22:20 UTC
FireDAC's Schema Synchronizer in RAD Studio compares two database structures and generates a forward DDL script that applies the detected differences. The tool can also emit a reverse DDL file that undoes those changes, but that output is optional and must be selected manually for each run.
There appears to be no documented option that makes reverse DDL generation automatic, stores the rollback script alongside the forward script, or blocks execution of the forward DDL until a rollback script has been produced and checked. DDL statements also run without a transactional rollback guarantee on most supported DBMSs, and some operations, such as dropping a column, destroy data that a reverse script cannot restore. Exact behavior may vary by RAD Studio version and database driver.
Is there a configuration in the Schema Synchronizer, or a supported workflow around it, that enforces reverse DDL generation before a forward script can be applied? If not, what is the recommended way to guarantee a rollback artifact exists for every schema change? How should irreversible DDL operations be treated in such a policy?