Installation & Quick Start
Get started with Prisma Migrations in minutes
Installation
Install Prisma Migrations in your project:
npm install prisma-migrationsQuick Start
1. Initialize Your Migrations
Create your first migration file:
npx prisma-migrations initThis creates a migration directory structure:
prisma/migrations/
└── [timestamp]_initial_migration/
└── migration.ts2. Create a Migration
Generate a new migration file:
npx prisma-migrations create add_users_tableThis creates:
prisma/migrations/
└── [timestamp]_add_users_table/
└── migration.ts3. Write Your Migration
Edit the generated migration file with TypeScript:
// prisma/migrations/[timestamp]_add_users_table/migration.ts
import type { PrismaClient } from 'prisma-migrations';
export async function up(prisma: PrismaClient) {
await prisma.$executeRaw`
CREATE TABLE users (
id SERIAL PRIMARY KEY,
email VARCHAR(255) UNIQUE NOT NULL,
name VARCHAR(255),
created_at TIMESTAMP DEFAULT NOW()
)
`;
}
export async function down(prisma: PrismaClient) {
await prisma.$executeRaw`DROP TABLE IF EXISTS users`;
}4. Run Migrations
Apply all pending migrations:
npx prisma-migrations up5. Rollback (When Needed)
Undo the last migration:
npx prisma-migrations downRoll back multiple migrations:
npx prisma-migrations down --steps 3Using with Existing Prisma Projects
Prisma Migrations works seamlessly with existing Prisma projects! It uses the same _prisma_migrations table that Prisma’s native migrations use.
If You Already Have Migrations
You can add Prisma Migrations to an existing project:
- Install the package
- Run
npx prisma-migrations statusto see existing migrations - Create new migrations with
npx prisma-migrations create - Your new migrations will work alongside existing Prisma migrations
Compatibility
- Uses Prisma’s standard
_prisma_migrationstable - Works with
prisma migratecommands - No conflicts with existing migration workflows
- Fully compatible with Prisma Client
Next Steps
- Learn about CLI commands for migration management
- Explore programmatic API for running migrations from code
- See advanced features like interactive mode and step control
- Check troubleshooting for common issues