Rerunning a failed French import job without duplicating rows
A nightly job pulls a supplier CSV from a partner in Lyon and upserts it into Postgres 15 on a small OVH VPS. About 180k rows, 14 columns, one of them a French product label with embedded semicolons.