When multiple bd commands are run in parallel, they can race during database migrations, causing "duplicate column name" errors. This happens because: 1. Process A checks if column exists → false 2. Process B checks if column exists → false 3. Process A adds column → succeeds 4. Process B adds column → FAILS (duplicate column) Changes: - Wrap RunMigrations in BEGIN EXCLUSIVE transaction to serialize migrations - Disable foreign keys BEFORE the transaction (PRAGMA must be called outside tx) - Convert nested BEGIN/COMMIT in migrations 010, 022, 025 to use SAVEPOINTs (SQLite does not support nested transactions) - Remove redundant PRAGMA foreign_keys calls from individual migrations 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
7.4 KiB
7.4 KiB