Ga naar hoofdinhoud

MikroORM Migrations

Create and manage database migrations with MikroORM.

Overview​

Gauzy supports MikroORM as an alternative ORM. Set DB_ORM=mikroorm to use it.

Creating Migrations​

# Auto-generate migration from entity changes
npx mikro-orm migration:create

# Create blank migration
npx mikro-orm migration:create --blank

Migration File​

import { Migration } from "@mikro-orm/migrations";

export class Migration20250305120000 extends Migration {
async up(): Promise<void> {
this.addSql(`
ALTER TABLE "employee"
ADD COLUMN "phone_number" varchar(20)
`);
}

async down(): Promise<void> {
this.addSql(`
ALTER TABLE "employee"
DROP COLUMN "phone_number"
`);
}
}

Running Migrations​

# Run pending migrations
npx mikro-orm migration:up

# Rollback last migration
npx mikro-orm migration:down

# Check pending migrations
npx mikro-orm migration:pending

# Fresh migration (drop all & re-run)
npx mikro-orm migration:fresh

Configuration​

// mikro-orm.config.ts
export default {
migrations: {
tableName: "mikro_orm_migrations",
path: "./src/database/migrations",
pattern: /^[\w-]+\d+\.ts$/,
transactional: true,
},
};

Multi-ORM Compatibility​

When using Multi-ORM entities, migrations must be created for each ORM independently. Use the DB_ORM environment variable to switch between them.