FirebirdDbComparer is pure .NET library that allows the comparison of two Firebird databases and can then produce a SQL script that will allow the source database to synchronise the target's structure.
Firebird 2.5.x. Firebird 3.0 (any edition) is a work in progress.
The FirebirdDbComparer.Compare.Comparer.ForTwoDatabases provides two connection strings (in .NET (FirebirdClient) format) for the source and target database and also IComparerSettings where you can specify the server version you wish to use and whether or not to ignore permissions on database objects. The Compare method then gives you the result (structured as well as list of SQL statements).
The alter script is aimed to use only what Firebird permits (no direct changes in system tables) and breaking dependencies chain as early as possible to avoid long scripts. The script should look familiar as if you'd have written it manually. That means we expect this library to be used by sane developers.
Because it's a library you can take the output, which is structured (not a single string), and do whatever you want with it - save the output to a file, execute each statement individually etc.
The library has been thoroughly tested and should work without any problems in a wide range of scenarios.