【问题标题】:Select items in TypeORM migration在 TypeORM 迁移中选择项目
【发布时间】: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


    【解决方案1】:

    如果在调用 .getMany() 之前将显式 select(...) 添加到查询构建器会发生什么情况?

    此查询是否还会像这样一次性返回可管理数量的结果以进行处理?

    【讨论】:

    • 同样的行为。目前,我在数据库中有 15 条记录。所以数据量应该不是问题。即使我尝试选择一项,它仍然不起作用
    猜你喜欢
    • 2021-12-05
    • 2020-12-30
    • 2021-05-23
    • 2019-11-17
    • 2022-07-25
    • 2020-06-16
    • 2015-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多