You can create a procedure that ignores the error that's generated if you drop a non-existing trigger:
CREATE PROCEDURE drop_trigger (trigschema varchar(128),
DECLARE tmpstmt VARCHAR(300);
SET tmpstmt = 'drop trigger ' || trigschema || '.' || trigname;
-- Do nothing if drop trigger fails
DECLARE CONTINUE HANDLER FOR SQLSTATE '42704'
EXECUTE IMMEDIATE tmpstmt;
You can call the procedure like:
The long term solution is to use a version for the database(s), and ignore all versions that are already in there. Every commit creates a new version, on error rollback so you never end up between versions. Needless to say, you need to prevent all ddl operations outside of this process.