create-database-migration
maintained by TryGhost
star
51.7k
account_tree
11.3k
verified_user
MIT License
name: Create database migration description: Create a database migration to add a table, add columns to an existing table, add a setting, or otherwise change the schema of Ghost's MySQL database.
Create Database Migration
Instructions
- Change directories into
ghost/core:cd ghost/core - Create a new, empty migration file using slimer:
slimer migration <name-of-database-migration>. IMPORTANT: do not create the migration file manually; always use slimer to create the initial empty migration file. - The above command will create a new directory in
ghost/core/core/server/data/migrations/versionsif needed, and create the empty migration file with the appropriate name. - Update the migration file with the changes you want to make in the database, following the existing patterns in the codebase. Where appropriate, prefer to use the utility functions in
ghost/core/core/server/data/migrations/utils/*. - Update the schema definition file in
ghost/core/core/server/data/schema/schema.js, and make sure it aligns with the latest changes from the migration. - Test the migration manually:
yarn knex-migrator migrate --v {version directory} --force - If adding or dropping a table, update
ghost/core/core/server/data/exporter/table-lists.jsas appropriate. - Run the schema integrity test, and update the hash:
yarn test:single test/unit/server/data/schema/integrity.test.js - Run unit tests in Ghost core, and iterate until they pass:
cd ghost/core && yarn test:unit
Examples
See examples.md for example migrations.
Rules
See rules.md for rules that should always be followed when creating database migrations.
chat Comments (0)
Sign in to join the discussion and leave a comment.
Skill Details
GitHub Stars
51.7k
GitHub Forks
11.3k
Created
Jan 2026
Last Updated
4个月前
tools
tools database tools
Related Skills
Build your own?
Join 12,000+ developers contributing to the Claude ecosystem.
No comments yet. Be the first to share your thoughts!