Таблица в миграции в Nest
Пусть сущность в коде уже описывает поля, а в PostgreSQL ещё нет подходящей таблицы. Пока автосинхронизация выключена, схему нужно собрать явным шагом в файле миграции.
В прямом методе миграции
вызывают createTable
у объекта QueryRunner
и передают описание Table
с именем и колонками. Обратный
метод снимает таблицу через
dropTable, чтобы откат
вернул базу к прежнему виду.
Покажем на примере постов:
import { MigrationInterface, QueryRunner, Table } from 'typeorm';
export class CreatePosts1730000000000 implements MigrationInterface {
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.createTable(
new Table({
name: 'post',
columns: [
{
name: 'id',
type: 'int',
isPrimary: true,
isGenerated: true,
generationStrategy: 'increment',
},
{
name: 'title',
type: 'varchar',
},
],
}),
);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.dropTable('post');
}
}
После сборки шаг применяют из корня тем же способом, что и пустые заготовки:
npx typeorm migration:run -d dist/data-source.js
Опишите создание таблицы
работников в CreateWorkersTable
и снимите её при откате
через обратный метод.