.agents/skills/create-database-migration/SKILL.md
cd ghost/core && pnpm migrate:create <kebab-case-slug>. IMPORTANT: do not create the migration file manually; always use this script to create the initial empty migration file. The slug must be kebab-case (e.g. add-column-to-posts).ghost/core/core/server/data/migrations/versions if needed, create the empty migration file with the appropriate name, and bump the core and admin package versions to RC if this is the first migration after a release.ghost/core/core/server/data/migrations/utils/*.ghost/core/core/server/data/schema/schema.js, and make sure it aligns with the latest changes from the migration.cd ghost/core && pnpm knex-migrator migrate --v {version directory} --forceghost/core/core/server/data/exporter/table-lists.js as appropriate.ghost/core/test/integration/exporter/exporter.test.js. This test has a hardcoded alphabetically-sorted array of all database tables — it runs in CI integration tests (not unit tests) and will fail if the new table is missing.cd ghost/core && pnpm test:single test/unit/server/data/schema/integrity.test.jscd ghost/core && pnpm test:unitSee examples.md for example migrations.
See rules.md for rules that should always be followed when creating database migrations.