如何为postgresql物化视图创建typeorm实体

问题描述 投票:0回答:3

我的 postgresql 数据库中有一个现有的 物化视图。我正在尝试为此创建 typeorm 实体。谁能告诉我该怎么做。我已经浏览过 typeorm View Entities docs,但它并不像我预期的那样有用。

postgresql nestjs typeorm materialized-views
3个回答
6
投票

在这个PR中添加了支持,正如这个answer中提到的,它是通过使用

{ materialized:true }
ViewEntity
解决的,将来提供一个清晰的例子可能是一个好主意。


2
投票

0
投票

尝试按照以下步骤操作:

  1. 使用@ViewEntity定义实体:使用@ViewEntity()将物化视图映射为TypeORM中的只读实体。

  2. 手动刷新视图:TypeORM 不会自动处理物化视图刷新。使用自定义查询来刷新它:

    const queryRunner = dataSource.createQueryRunner(); 等待 queryRunner.query('刷新物化视图 your_materialized_view_name'); 等待 queryRunner.release();

  3. 示例实体:

    @ViewEntity({ name: 'your_materialized_view_name' }) 导出类 YourMaterializedView { 第 1 列:字符串; 第2列:数字; // 根据需要添加更多列 }

总而言之,将物化视图定义为@ViewEntity,使用自定义查询进行刷新,并将其视为只读实体。

© www.soinside.com 2019 - 2024. All rights reserved.