Генерация миграции в Nest
Пусть классы сущностей уже отражают нужные поля, а руками переписывать каждую колонку в миграции долго и легко ошибиться в типе.
CLI сравнивает зарегистрированные сущности с текущей схемой PostgreSQL и пишет новый файл с разницей. Нужны собранные классы сущностей, журнал уже применённых шагов и источник данных с путями к обоим каталогам в папке сборки. Команду снова запускают из корня после сборки.
Покажем на примере постов:
import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm';
@Entity()
export class Post {
@PrimaryGeneratedColumn()
id: number;
@Column()
title: string;
}
Источник перечисляет сущности и каталог миграций; автосинхронизация остаётся выключенной:
import { DataSource } from 'typeorm';
export default new DataSource({
type: 'postgres',
host: 'localhost',
port: 5432,
username: 'postgres',
password: 'postgres',
database: 'site',
synchronize: false,
entities: ['dist/**/*.entity.js'],
migrations: ['dist/migrations/*.js'],
});
Генерация создаёт файл с шагами под найденные отличия; точный текст зависит от базы:
npx typeorm migration:generate src/migrations/AddPostText -d dist/data-source.js
Сгенерируйте шаг схемы для
проекта работников по классу
Worker и текущей базе,
не включая автосинхронизацию
при старте приложения.