Hi all
I'm currently trying to write a install / uninstall script. The PHP based software is using mysql as it's database and has tables with foreign key constraints.
As the software is plugin-extendable, i can not be sure which tables relate to which other tables and in which way.
When uninstalling the Software, i match db tables against a prefix and try to drop the resulting tables which ends in "cannot delete or update a parent row: a foreign key constraint fails at /usr/libexec/webmin/web-lib-funcs.pl line 1361"
Because of the foreign key constraint i would need to call SET foreign_key_checks = 0 before the call and (for style's sake) SET foreign_key_checks = 1 afterwards.
I utilize the mysql::execute_sql_logged procedure.
However, since the SET foreign_key_check is session-based, each call to execute_sql_safe and it's derivates opens a private connection to the DB and combining multiple commands in one dbi command appears to be illegal this is quite a problem.
My question is: is there a smart way of doing this inside virtualmin / webmin without writing my own mysql lib file (or - worse - modify base). I've looked quite a bit but can't find a clean - less a simply working solution.
Any ideas?