Laravel DatabaseTruncation的exceptTables参数失效问题求助
解决Laravel Dusk DatabaseTruncation $exceptTables失效问题
先检查
$exceptTables的访问修饰符,必须是public。如果定义成private或protected,DatabaseTruncation特性无法读取这个属性,会默认截断所有表。正确写法:public $exceptTables = ['table1', 'table2'];确认没有同时使用
RefreshDatabase特性。这两个特性的数据库清理逻辑会冲突,RefreshDatabase的优先级更高,会覆盖DatabaseTruncation的排除设置。如果之前加了RefreshDatabase,直接移除即可。核对表名的大小写和拼写。比如Linux环境下的MySQL默认区分表名大小写,如果你数据库里的表是
Table1,但代码里写的是table1,特性会识别不到,导致该表被误截断。检查测试代码里有没有手动截断表的逻辑。比如测试方法里写了
DB::table('table1')->truncate(),这种硬编码的操作会绕过特性的设置,不管你怎么配置都会截断表。
内容的提问来源于stack exchange,提问作者Enzo
相关产品推荐
相关产品推荐

