plugins/aai-stack-typeorm/skills/typeorm-migrations/SKILL.md
February 1, 2026
Select agents to install to:
npx add-skill https://github.com/the-answerai/alphaagent-team/blob/main/plugins/aai-stack-typeorm/skills/typeorm-migrations/SKILL.md -a claude-code --skill typeorm-migrationsInstallation paths:
.claude/skills/typeorm-migrations/# TypeORM Migrations Skill
Patterns for managing database migrations with TypeORM.
## Configuration
### Data Source Configuration
```typescript
// data-source.ts
import { DataSource } from 'typeorm'
import { User } from './entities/User'
import { Post } from './entities/Post'
export const AppDataSource = new DataSource({
type: 'postgres',
host: process.env.DB_HOST || 'localhost',
port: parseInt(process.env.DB_PORT || '5432'),
username: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME,
entities: [User, Post],
migrations: ['src/migrations/*.ts'],
migrationsTableName: 'migrations',
logging: process.env.NODE_ENV === 'development',
})
```
### CLI Configuration
```javascript
// typeorm.config.js (for CLI)
module.exports = {
type: 'postgres',
host: process.env.DB_HOST,
port: parseInt(process.env.DB_PORT),
username: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME,
entities: ['dist/entities/**/*.js'],
migrations: ['dist/migrations/**/*.js'],
cli: {
migrationsDir: 'src/migrations',
},
}
```
## Creating Migrations
### Generate Migration
```bash
# Generate migration from entity changes
npx typeorm migration:generate -d src/data-source.ts src/migrations/AddUserRole
# Create empty migration
npx typeorm migration:create src/migrations/SeedInitialData
```
### Migration Structure
```typescript
import { MigrationInterface, QueryRunner, Table, TableColumn } from 'typeorm'
export class AddUserRole1700000000000 implements MigrationInterface {
public async up(queryRunner: QueryRunner): Promise<void> {
// Migration logic
}
public async down(queryRunner: QueryRunner): Promise<void> {
// Rollback logic
}
}
```
### Table Operations
```typescript
export class CreateUsersTable1700000000000 implements MigrationInterface {
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.createTable(
new Table({
nam