Skip to content

fix: add alembic upgrade validation and migration compatibility fixes#2943

Merged
crivetimihai merged 3 commits intomainfrom
upgrade-testing
Feb 15, 2026
Merged

fix: add alembic upgrade validation and migration compatibility fixes#2943
crivetimihai merged 3 commits intomainfrom
upgrade-testing

Conversation

@crivetimihai
Copy link
Copy Markdown
Member

@crivetimihai crivetimihai commented Feb 14, 2026

Summary

Closes #2154

Summary

  • Add an Alembic-focused CI workflow (.github/workflows/alembic-upgrade-validation.yml) that runs when mcpgateway/alembic/** changes.
  • Add scripts/ci/run_upgrade_validation.sh to run deterministic migration validation for:
    • SQLite fresh install
    • SQLite upgrade (base image -> current image)
    • PostgreSQL fresh install
    • PostgreSQL upgrade (base image -> current image)
  • Validate that alembic_version matches the repository head and that marker data persists across upgrades.
  • Add make upgrade-validate with configurable UPGRADE_BASE_IMAGE and UPGRADE_TARGET_IMAGE.
  • Ignore generated upgrade-validation artifacts in .gitignore.
  • Fix migration a31c6ffc2239 to handle permissions stored as either JSON strings or native lists.
  • Fix migration ba202ac1665f to use FK-safe granted_by values during team-role backfill.
  • Add unit coverage for permission normalization in tests/unit/mcpgateway/db/test_token_permissions_migration.py.

Why

  • Automates the release-to-current migration check that was previously manual.
  • Covers both fresh bootstrap and in-place upgrade paths for SQLite and PostgreSQL.
  • Hardens migrations based on failures found during PostgreSQL upgrade validation.

Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
Closes #2955

Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
@crivetimihai crivetimihai merged commit 070d8a6 into main Feb 15, 2026
46 of 47 checks passed
@crivetimihai crivetimihai deleted the upgrade-testing branch February 15, 2026 17:30
suciu-daniel pushed a commit that referenced this pull request Feb 16, 2026
…#2943)

* fix: add alembic upgrade validation and migration compatibility fixes

Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>

* fix(db): handle psycopg JSON deserialization in alembic migrations

Closes #2955

Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>

* format

Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>

---------

Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
vishu-bh pushed a commit that referenced this pull request Feb 18, 2026
…#2943)

* fix: add alembic upgrade validation and migration compatibility fixes

Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>

* fix(db): handle psycopg JSON deserialization in alembic migrations

Closes #2955

Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>

* format

Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>

---------

Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
Signed-off-by: Vishu Bhatnagar <vishu.bhatnagar@ibm.com>
kcostell06 pushed a commit to kcostell06/mcp-context-forge that referenced this pull request Feb 24, 2026
…IBM#2943)

* fix: add alembic upgrade validation and migration compatibility fixes

Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>

* fix(db): handle psycopg JSON deserialization in alembic migrations

Closes IBM#2955

Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>

* format

Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>

---------

Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[CHORE]: Add CI/CD validation for Alembic migration status

1 participant