tr
TryGhost
GitHub
Ghost
Workspace
GitHub
CI Pipeline Executions
Current execution
Succeeded
claude/ghost-migrations-mysql-algo-f69910
Runs and Agents
Timeline
Beta
Configuration
Self-Healing CI
Project Graph
Circular Dependencies
Enterprise
Resource Usage
Analysis
Conformance
Enterprise
Runs
Current run
Succeeded
Tasks
Resource Usage
Insights
Compare tasks
Analytics
Sign in
Toggle sidebar
🐛 Fixed migrations failing on MySQL older than 8.0.28 fixes https://github.com/TryGhost/Ghost/issues/30100 The 6.58 rename of `email_batches.provider_id` asked for `ALGORITHM=INSTANT`, which MySQL only accepts for RENAME COLUMN from 8.0.28 onwards. Anyone on an older 8.0 server — still supported per our docs — hit ER_ALTER_OPERATION_NOT_SUPPORTED and could not upgrade past 6.58. That migration now asks for `auto`, which is what every other algorithm-bearing migration uses and costs nothing here: a plain RENAME COLUMN is metadata-only on INPLACE too, and 8.0.28+ servers still pick INSTANT themselves. Editing a shipped migration is safe because knex-migrator tracks migrations by name with no checksum, so sites that already ran it skip it and stuck sites run the fixed version. To stop this recurring, the schema commands now retry an ALTER without the algorithm clause when the server rejects it. INSTANT support is per-operation (ADD COLUMN 8.0.12, RENAME COLUMN 8.0.28, DROP COLUMN 8.0.29), so a version matrix in the migration utils would be a maintenance trap; reacting to the server's own error is version- and vendor-agnostic and costs nothing on the happy path. Verified against real MySQL 8.0.21 and 8.4 containers. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
nx run ghost-monorepo:lint:boundaries
⌘K
Succeeded
nx run ghost-monorepo:lint:boundaries
Click to copy
Linux
4 CPU cores
62b1b870
30130
GitHub
Ghost
Workspace