У меня есть ситуация, когда мне нужно добавить новый столбец в существующую таблицу в TypeORM. Я установил для столбца значение nullable, поскольку в таблице есть существующие элементы, для которых необходимо добавить данные для этого столбца, прежде чем я смогу установить для столбца значение, которое не может быть обнуляемым.
Я пытался написать Файл миграции для вставки данных в новый столбец для каждой строки таблицы, но, похоже, он не сохраняется.
Это то, что я сейчас пытаюсь:
import { MigrationInterface, QueryRunner } from 'typeorm';
import { Customer } from '../../entities';
import { generateUrlName } from '../../entities/Customer';
export class fixUrlNameCustomers1584393813738 implements MigrationInterface {
name = 'fixUrlNameCustomers1584393813738';
public async up(queryRunner: QueryRunner): Promise<void> {
const customers = await queryRunner.manager.find(Customer);
const updatedCustomers = customers.map(customer => {
customer.url_name = generateUrlName(customer.name);
return customer;
});
await queryRunner.manager.save(updatedCustomers);
}
public async down(queryRunner: QueryRunner): Promise<void> {}
}
Как Вы можете видеть, я пытаюсь заполнить '.url-name' для каждого клиента, используя функцию generateUrlName. После запуска этой миграции и выполнения запроса из Postgres я вижу, что миграция не сохраняет данные.