import { SqlEntityManager } from '@mikro-orm/sql'; /** * @inheritDoc */ export class PostgreSqlEntityManager extends SqlEntityManager { /** * Refreshes a materialized view. * * @param entityName - The entity name or class of the materialized view * @param options - Optional settings * @param options.concurrently - If true, refreshes the view concurrently (requires a unique index on the view) */ async refreshMaterializedView(entityName, options) { const meta = this.getMetadata(entityName); if (!meta.view || !meta.materialized) { throw new Error(`Entity ${meta.className} is not a materialized view`); } const helper = this.getDriver().getPlatform().getSchemaHelper(); const schema = meta.schema ?? this.config.get('schema'); const sql = helper.refreshMaterializedView(meta.tableName, schema, options?.concurrently); await this.execute(sql); } }