Every record failed on MySQL: new packages/items were created as empty placeholder rows and filled in afterwards, so the INSERT carried a zero last_synced_at, which NOT NULL + NO_ZERO_DATE rejects. The failure was only counted, never explained, and SQLite tests did not enforce it. Insert complete rows (including last_synced_at) and write each package with its items in one transaction. Runs now record "N 条写入失败,首个原因:…" and are marked failed when nothing could be stored. Tests emulate strict datetime mode in SQLite; both fail on the previous code. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NTDbDcwbDw1TSAcE6wfh2F