Files
ColaFlow/colaflow-api/src/Modules/Identity
Yaojia Wang 1413306028
Some checks failed
Code Coverage / Generate Coverage Report (push) Has been cancelled
Tests / Run Tests (9.0.x) (push) Has been cancelled
Tests / Docker Build Test (push) Has been cancelled
Tests / Test Summary (push) Has been cancelled
fix(backend): Make UserTenantRoles migration idempotent to fix database initialization
Fixed BUG-007 where database migrations failed during initialization because the
user_tenant_roles table was never created by any migration, but a later migration
tried to modify it.

Root Cause:
- The user_tenant_roles table was configured in IdentityDbContext but missing from InitialIdentityModule migration
- Migration 20251103150353_FixUserTenantRolesIgnoreNavigation tried to drop/recreate foreign keys on a non-existent table
- This caused application startup to fail with "relation user_tenant_roles does not exist"

Solution:
- Made the migration idempotent by checking table existence before operations
- If table doesn't exist, create it with proper schema, indexes, and constraints
- Drop foreign keys only if they exist (safe for both first run and re-runs)
- Corrected principal schema references (users/tenants are in default schema at this migration point)
- Removed duplicate ix_user_tenant_roles_tenant_role index (created by later migration)

Testing:
- Clean database initialization:  SUCCESS
- All migrations applied successfully:  SUCCESS
- Application starts and listens:  SUCCESS
- Foreign keys created correctly:  SUCCESS

Impact:
- Fixes P0 CRITICAL bug blocking Docker environment delivery
- Enables clean database initialization from scratch
- Maintains backward compatibility with existing databases

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-05 09:02:40 +01:00
..