mirror of
https://github.com/netbirdio/netbird.git
synced 2026-08-10 12:05:39 -04:00
MySQL implicitly commits around every ALTER TABLE, so the transaction wrapping the reshape is real only on sqlite and postgres. On MySQL an interrupted run could stop between the two legacy column drops, and the rerun keyed its already-migrated check on the cluster column alone -- leaving the subdomain column behind forever. Key the entry check on either legacy column remaining, run the backfill and its loud-failure check only while the cluster column exists (they provably completed before any drop), and skip drops for columns already gone. No data-loss window existed in any state: the backfill commits before the first drop on every engine. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>