在每次测试开始时截断数据库的最佳解决方案是什么?我有带外键的InnoDB引擎,yii不能截断表。Yii测试。截断外键
1
A
回答
0
的Yii可以截断:
Yii::app()->db->createCommand('TRUNCATE tbl_name')->execute();
0
3
如果您在public $fixtures
财产延长CDbTestCase
并使用内置指定你的夹具文件,它会自动处理这个。但是,如果您构建了自己的夹具生成系统,或者想要截断表格,则可以使用以下内容。
$this->getFixtureManager()->checkIntegrity(false);
$this->getFixtureManager()->truncateTable('table_name');
$this->getFixtureManager()->checkIntegrity(false);
这又假设你已经为你的单元测试文件扩展了CDbTestCase
。如果你不是,那么你可以直接删除的完整性检查,像这样:
Yii::app()->db->createCommand('set foreign_key_checks=0')->execute();
//do whatever, including truncating
Yii::app()->db->createCommand('set foreign_key_checks=1')->execute();
这也将暂时关闭外键检查。
1
只需添加一个参考的Yii2(因为不存在容易找到例子):
$this->db->createCommand()->checkIntegrity(false)->execute();
$this->truncateTable('table_name');
$this->db->createCommand()->checkIntegrity(true)->execute();
相关问题
- 1. 获取不能截断在Yii框架外键约束
- 2. 用外键截断表
- 3. Symfony2 querybuilder用外键和alter table截断
- 4. Knex截断带外键约束的表
- 5. 截断由外键引用的表
- 6. 不能截断外键约束
- 7. Yii的外键
- 8. Yii外键
- 9. 截断试验
- 10. 油滑3截断表测试
- 11. JUnit,如何测试截断表
- 12. 用黄瓜测试外键
- 13. Yii单元测试
- 14. Yii功能测试
- 15. Excel VBA意外截断
- 16. 检测整数截断
- 17. Yii - 外键 - 访问数据
- 18. 得到外键的Yii
- 19. 尝试截断时Zend Db单元测试失败
- 20. NUnit的异步测试例外断言
- 21. Yii单元测试,yii中的常量
- 22. Rspec的与database_cleaner在续集导致外键截断误差
- 23. Oracle的规范或SQL的? :用外键约束截断表
- 24. 禁用外键约束,仍不能截断表? (SQL Server 2005)
- 25. 删除/截断有外键的表中的记录
- 26. 什么效果相当于截断表,当表是由外键
- 27. 无法更新/删除/截断表的外键
- 28. nodejs sequelize如何截断一个外键引用表
- 29. 单元测试Yii Behaviors
- 30. Yii单元测试CDbException
Manualy,Yii中可以全自动做到这一点,但如果某些表有外键它不是截断。 – Actimele
所以你需要先解决外键问题! – tinybyte