Откат миграции в Nest
Пусть недавний шаг схемы оказался лишним или его нужно проверить заново на чистой базе. Удалять таблицы руками в консоли PostgreSQL легко забыть связанный журнал миграций.
CLI TypeORM умеет откатывать только последний записанный шаг: из журнала снимают последнюю запись и вызывают обратный метод того же класса. Так база и список выполненных файлов снова согласованы. Команду, как и выполнение, запускают из корня после сборки с тем же источником данных.
Покажем на примере постов:
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'],
});
Обратный метод в файле шага должен отменять прямой. Для пустой заготовки оба метода могут оставаться без кода:
import { MigrationInterface, QueryRunner } from 'typeorm';
export class CreatePosts1730000000000 implements MigrationInterface {
public async up(queryRunner: QueryRunner): Promise<void> {
}
public async down(queryRunner: QueryRunner): Promise<void> {
}
}
Откат последнего шага из корня проекта после сборки:
npx typeorm migration:revert -d dist/data-source.js
Отмените последний применённый шаг схемы в проекте работников, опираясь на тот же источник данных, что и при выполнении.