我正在为我的应用程序编写测试。我想为我的所有测试使用干净的数据库。由于各种原因,我无法创建单独的测试数据库。
我目前所做的是在事务中运行所有内容,并且永远不会提交到数据库。但是有些测试是从数据库读取的,所以我想在事务开始时删除所有行并从那里开始。
我遇到的问题是外键约束。目前我只是浏览每个表并执行
cursor.execute("DELETE FROM %s" % tablename)
给了我
IntegrityError: (1451, u'Cannot delete or update a parent row: a
foreign key constraint fails (`testing`.`app_adjust_reason`,
CONSTRAINT `app_adjust_reason_ibfk_2` FOREIGN KEY (`adjust_reason_id`)
REFERENCES `adjust_reason` (`id`))')
编辑:我想要一些可以应用于任何数据库的通用名称。否则我会特别放弃约束