Audit item #13. The command truncated postcodes + outcodes immediately and then chunk-inserted from the CSV. A mid-stream failure (network drive disconnect, malformed row) left the production tables empty until a successful re-run. Now streams into a postcodes_staging table created via Schema::create (works on both MySQL and SQLite) and only swaps into the live tables once the full CSV has been consumed. A try/finally ensures the file handle and staging table are cleaned up on any path. Live data is now preserved on partial failures. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
5.2 KiB
5.2 KiB