Колонка в миграции в Nest
Пусть таблица уже есть, а в сущности появилось новое поле. Пересоздавать всю таблицу опасно: пропадут строки. Нужен отдельный шаг только для новой колонки.
Прямой метод миграции вызывает
addColumn: указывают
имя таблицы и объект
TableColumn с типом.
Обратный метод убирает колонку
тем же API, чтобы откат
совпал с прямым шагом.
Покажем на примере постов:
import { MigrationInterface, QueryRunner, TableColumn } from 'typeorm';
export class AddPostText1730000001000 implements MigrationInterface {
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.addColumn(
'post',
new TableColumn({
name: 'text',
type: 'varchar',
}),
);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.dropColumn('post', 'text');
}
}
Источник данных по-прежнему держит автосинхронизацию выключенной:
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'],
});
Добавьте колонку должности
к таблице работников в
AddWorkerPosition
и уберите её в обратном
методе.