【发布时间】:2020-11-07 01:43:47
【问题描述】:
我正在尝试在表格中再添加一列。此外,我必须根据现有数据在创建的列中插入一个对象。问题是当我修改表时,我试图从表中选择所有项目,但查询卡住了(请参阅日志中的“获取事件”)。
这是我的代码:
async up(queryRunner: QueryRunner): Promise<any> {
Logger.debug('Start migration');
Logger.debug('Table modification');
await queryRunner.addColumn(
'sport_events',
new TableColumn({
name: 'url_keys',
type: 'hstore',
isNullable: true,
}),
);
Logger.debug('Create repo');
const repo = queryRunner.connection.getRepository(SportEvent);
Logger.debug('Get events');
let events = await repo.createQueryBuilder().getMany();
Logger.debug('Modify events');
events = events.map((event) => {
const keys = {};
for (const [key, val] of Object.entries(event.name)) {
keys[key] = generateURLId(val as string, key);
}
event.URLKeys = keys;
return event;
});
Logger.debug('Save modified events');
await repo.save(events);
Logger.debug('Done');
}
日志:
[Nest] 25628 - 07/17/2020, 12:00:28 PM Start migration +504ms
[Nest] 25628 - 07/17/2020, 12:00:28 PM Table modification +0ms
[Nest] 25628 - 07/17/2020, 12:00:28 PM Create repo +454ms
[Nest] 25628 - 07/17/2020, 12:00:28 PM Get events +0ms
【问题讨论】:
标签: node.js postgresql nestjs typeorm