# MikroORM Migrations {#mikroorm-migrations}


Create and manage database migrations with MikroORM.


## Overview {#overview}


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


## Creating Migrations {#creating-migrations}


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

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


## Migration File {#migration-file}


```typescript
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 {#running-migrations}


```bash
# 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 {#configuration}


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


## Multi-ORM Compatibility {#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.


## Related Pages {#related-pages}


- [TypeORM Migrations](https://sourcey-gauzy.pages.dev/database/typeorm-migrations/index.md) — TypeORM migrations
- [TypeORM to MikroORM Migration](https://sourcey-gauzy.pages.dev/migration/typeorm-to-mikroorm/index.md) — ORM migration
- [Multi-ORM Architecture](https://sourcey-gauzy.pages.dev/architecture/multi-orm-architecture/index.md) — ORM support
