# Create Migration

> Create Migration is an Agent Skill for devops & security published in the OpenCTI-Platform/opencti repository on GitHub: a SKILL.md instruction file an AI agent can load to do this task.

Use when: creating a new ElasticSearch database migration file, adding or transforming data at deploy time

- Skill name: `create-migration`
- Category: [DevOps & Security](https://www.openparable.com/skill/devops-security/1)
- Source: https://github.com/OpenCTI-Platform/opencti/blob/HEAD/.github/skills/create-migration/SKILL.md
- Repository: OpenCTI-Platform/opencti (9,685 GitHub stars when collected)

## SKILL.md

# Create Database Migration

## Prerequisites
- **Description**: Short snake_case description of the change (e.g., `add_description_to_user`).

## Procedure

### Step 1 — Generate Migration File
Use the current timestamp (ms) as prefix.
File: `opencti-platform/opencti-graphql/src/migrations/<timestamp>-<description>.ts`.

### Step 2 — Implement Migration Pattern
Use the standard template with logging and execution context.

```typescript
import { logMigration } from '../config/conf';

const message = '[MIGRATION] <Description>';

export const up = async (next: (error?: Error) => void) => {
  const startTime = Date.now();
  logMigration.info(`${message} > started`);

  // Implementation here
  // usage: const context = executionContext('migration');
  //        await someDomainFunction(context, SYSTEM_USER, args);

  logMigration.info(`${message} > done in ${Date.now() - startTime} ms`);
  next();
   };

export const down = async (next: (error?: Error) => void) => {
  next();
};
```

---

Source: https://www.openparable.com/skill/devops-security/create-migration (OpenParable). Cite the canonical URL above.
