现象
内置游戏资料包含实体、别名和称号映射,这些种子内容在多次启动之间通常没有变化。重复导入相同资料会再次执行序列化和数据库处理,却不会改变可检索结果。导入器需要一种可持久保存的判断方式,用来区分未变化来源和新版本。
处理方式
导入器按照稳定顺序序列化种子记录,并计算 SHA-256 内容哈希。哈希会与来源键一起保存在导入状态中。下一次运行时,如果来源和哈希都相同,函数会在实体与别名写入阶段之前返回 skipped=True。输入内容发生变化后,导入器继续执行事务,并保存新的状态。
验证
针对性测试先执行首次导入并确认没有跳过,再用相同输入执行第二次导入,确认跳过状态和保存的元数据保持一致;随后修改称号映射种子,第三次导入应恢复执行并产生不同哈希。实现顺序能够确认提前返回发生在写入前,测试验证的是状态变化,并未声称统计了 SQLite 写入次数。