Order of execution in change log

I have a changelog.xml file, when I roll forward it is executing in correct order.

When I try to rollback it should execute in the reverese order, but unfortunately it is not happening.

Like while inserting it has to insert into parent table first and then to child table, but in rollback it should delete from child table and then parent table. 

The rollforward is successful but rollback is  failing, because child records are not deleted first.

The insert scripts for parent and child are in different file.

Any insights of what the issue may be? Any help is highly appreciated.

Any suggestions?