pymysql - 清除 table 用于测试
pymysql - Clear a table for testing
我正在为我的应用程序编写测试。我想为我的所有测试使用一个干净的数据库。由于各种原因,我无法创建单独的测试数据库。
我目前所做的是运行 事务中的所有内容,从不提交给数据库。但是有些测试是从数据库中读取的,所以我想删除事务开始时的所有行并从那里开始。
我运行遇到的问题是外键约束。目前我只是浏览每个 table 并做
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`))')
编辑:我想要一些可以应用于任何数据库的通用的东西。否则我会特别放弃约束
我正在为我的应用程序编写测试。我想为我的所有测试使用一个干净的数据库。由于各种原因,我无法创建单独的测试数据库。
我目前所做的是运行 事务中的所有内容,从不提交给数据库。但是有些测试是从数据库中读取的,所以我想删除事务开始时的所有行并从那里开始。
我运行遇到的问题是外键约束。目前我只是浏览每个 table 并做
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`))')
编辑:我想要一些可以应用于任何数据库的通用的东西。否则我会特别放弃约束