The Backfill That Ran Twice and Doubled a Balance
A retry after a partial failure ran the same backfill again, and every account it had already processed got credited twice. The fix is not a lock, it is making the script a function.
Tag archive
A retry after a partial failure ran the same backfill again, and every account it had already processed got credited twice. The fix is not a lock, it is making the script a function.
A NOT NULL constraint and a backfill both passed on a staging database with eleven rows, then held a production table for six minutes. Two changes make staging argue back.

The situation Say you are the sole engineering hire at a newly‑funded SaaS startup. The...

The situation Say you are a lead mobile engineer on a React‑Native product that ships a...

The situation Say you are a lead mobile engineer on a React Native 0.71 project that ships...

An honest, technical guide to migrating your articles to ZyVOP across DEV, Hashnode, Medium, RSS feeds, and static-site Markdown archives, detailing exact platform support, image re-hosting, and canonical attribution.

Forty-seven schema crossings in one app. Fifteen with a test behind them. I would have told you,...
Two developers on the billing team each wrote a database migration in the same week. The first one,...
Renaming a database column looks like one line of SQL. ALTER TABLE orders RENAME COLUMN...

Squash Laravel migrations with schema:dump --prune without losing pending files, test tables or seed rows. Five traps, each one reproduced on Laravel 13.
Blue-green swaps code, but both environments share one database. Run a destructive migration and rollback is gone, because code can go back and schema cannot.
goose migrations are not a Flisk language flag. Wire the pressly/goose CLI as a one-shot job beside Postgres, and keep it out of the API container.