@mikro-orm/postgresql 7.0.0-dev.174 → 7.0.0-dev.176

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,12 @@
1
- import type { Configuration, Constructor } from '@mikro-orm/core';
1
+ import { type Configuration, type Constructor, EntityManagerType } from '@mikro-orm/core';
2
2
  import { AbstractSqlDriver } from '@mikro-orm/sql';
3
3
  import { PostgreSqlConnection } from './PostgreSqlConnection.js';
4
4
  import { PostgreSqlMikroORM } from './PostgreSqlMikroORM.js';
5
+ import { PostgreSqlEntityManager } from './PostgreSqlEntityManager.js';
5
6
  export declare class PostgreSqlDriver extends AbstractSqlDriver<PostgreSqlConnection> {
7
+ [EntityManagerType]: PostgreSqlEntityManager<this>;
6
8
  constructor(config: Configuration);
9
+ createEntityManager(useContext?: boolean): this[typeof EntityManagerType];
7
10
  /** @inheritDoc */
8
11
  getORMClass(): Constructor<PostgreSqlMikroORM>;
9
12
  }
@@ -1,11 +1,18 @@
1
+ import { EntityManagerType } from '@mikro-orm/core';
1
2
  import { AbstractSqlDriver } from '@mikro-orm/sql';
2
3
  import { PostgreSqlConnection } from './PostgreSqlConnection.js';
3
4
  import { PostgreSqlPlatform } from './PostgreSqlPlatform.js';
4
5
  import { PostgreSqlMikroORM } from './PostgreSqlMikroORM.js';
6
+ import { PostgreSqlEntityManager } from './PostgreSqlEntityManager.js';
5
7
  export class PostgreSqlDriver extends AbstractSqlDriver {
8
+ [EntityManagerType];
6
9
  constructor(config) {
7
10
  super(config, new PostgreSqlPlatform(), PostgreSqlConnection, ['kysely', 'pg']);
8
11
  }
12
+ createEntityManager(useContext) {
13
+ const EntityManagerClass = this.config.get('entityManager', PostgreSqlEntityManager);
14
+ return new EntityManagerClass(this.config, this, this.metadata, useContext);
15
+ }
9
16
  /** @inheritDoc */
10
17
  getORMClass() {
11
18
  return PostgreSqlMikroORM;
@@ -0,0 +1,18 @@
1
+ import { type EntityName } from '@mikro-orm/core';
2
+ import { SqlEntityManager } from '@mikro-orm/sql';
3
+ import type { PostgreSqlDriver } from './PostgreSqlDriver.js';
4
+ /**
5
+ * @inheritDoc
6
+ */
7
+ export declare class PostgreSqlEntityManager<Driver extends PostgreSqlDriver = PostgreSqlDriver> extends SqlEntityManager<Driver> {
8
+ /**
9
+ * Refreshes a materialized view.
10
+ *
11
+ * @param entityName - The entity name or class of the materialized view
12
+ * @param options - Optional settings
13
+ * @param options.concurrently - If true, refreshes the view concurrently (requires a unique index on the view)
14
+ */
15
+ refreshMaterializedView<Entity extends object>(entityName: EntityName<Entity>, options?: {
16
+ concurrently?: boolean;
17
+ }): Promise<void>;
18
+ }
@@ -0,0 +1,23 @@
1
+ import { SqlEntityManager } from '@mikro-orm/sql';
2
+ /**
3
+ * @inheritDoc
4
+ */
5
+ export class PostgreSqlEntityManager extends SqlEntityManager {
6
+ /**
7
+ * Refreshes a materialized view.
8
+ *
9
+ * @param entityName - The entity name or class of the materialized view
10
+ * @param options - Optional settings
11
+ * @param options.concurrently - If true, refreshes the view concurrently (requires a unique index on the view)
12
+ */
13
+ async refreshMaterializedView(entityName, options) {
14
+ const meta = this.getMetadata(entityName);
15
+ if (!meta.view || !meta.materialized) {
16
+ throw new Error(`Entity ${meta.className} is not a materialized view`);
17
+ }
18
+ const helper = this.getDriver().getPlatform().getSchemaHelper();
19
+ const schema = meta.schema ?? this.config.get('schema');
20
+ const sql = helper.refreshMaterializedView(meta.tableName, schema, options?.concurrently);
21
+ await this.execute(sql);
22
+ }
23
+ }
@@ -1,12 +1,12 @@
1
1
  import { type AnyEntity, type EntityClass, type EntitySchema, MikroORM, type Options, type IDatabaseDriver, type EntityManager, type EntityManagerType } from '@mikro-orm/core';
2
- import type { SqlEntityManager } from '@mikro-orm/sql';
3
2
  import { PostgreSqlDriver } from './PostgreSqlDriver.js';
4
- export type PostgreSqlOptions<EM extends SqlEntityManager<PostgreSqlDriver> = SqlEntityManager<PostgreSqlDriver>, Entities extends (string | EntityClass<AnyEntity> | EntitySchema)[] = (string | EntityClass<AnyEntity> | EntitySchema)[]> = Options<PostgreSqlDriver, EM, Entities>;
5
- export declare function definePostgreSqlConfig<EM extends SqlEntityManager<PostgreSqlDriver> = SqlEntityManager<PostgreSqlDriver>, Entities extends (string | EntityClass<AnyEntity> | EntitySchema)[] = (string | EntityClass<AnyEntity> | EntitySchema)[]>(options: Options<PostgreSqlDriver, EM, Entities>): Options<PostgreSqlDriver, EM, Entities>;
3
+ import type { PostgreSqlEntityManager } from './PostgreSqlEntityManager.js';
4
+ export type PostgreSqlOptions<EM extends PostgreSqlEntityManager = PostgreSqlEntityManager, Entities extends (string | EntityClass<AnyEntity> | EntitySchema)[] = (string | EntityClass<AnyEntity> | EntitySchema)[]> = Options<PostgreSqlDriver, EM, Entities>;
5
+ export declare function definePostgreSqlConfig<EM extends PostgreSqlEntityManager = PostgreSqlEntityManager, Entities extends (string | EntityClass<AnyEntity> | EntitySchema)[] = (string | EntityClass<AnyEntity> | EntitySchema)[]>(options: Options<PostgreSqlDriver, EM, Entities>): Options<PostgreSqlDriver, EM, Entities>;
6
6
  /**
7
7
  * @inheritDoc
8
8
  */
9
- export declare class PostgreSqlMikroORM<EM extends SqlEntityManager<PostgreSqlDriver> = SqlEntityManager<PostgreSqlDriver>, Entities extends (string | EntityClass<AnyEntity> | EntitySchema)[] = (string | EntityClass<AnyEntity> | EntitySchema)[]> extends MikroORM<PostgreSqlDriver, EM, Entities> {
9
+ export declare class PostgreSqlMikroORM<EM extends PostgreSqlEntityManager = PostgreSqlEntityManager, Entities extends (string | EntityClass<AnyEntity> | EntitySchema)[] = (string | EntityClass<AnyEntity> | EntitySchema)[]> extends MikroORM<PostgreSqlDriver, EM, Entities> {
10
10
  /**
11
11
  * @inheritDoc
12
12
  */
package/index.d.ts CHANGED
@@ -2,5 +2,6 @@ export * from '@mikro-orm/sql';
2
2
  export * from './PostgreSqlConnection.js';
3
3
  export * from './PostgreSqlDriver.js';
4
4
  export * from './PostgreSqlPlatform.js';
5
+ export { PostgreSqlEntityManager as EntityManager } from './PostgreSqlEntityManager.js';
5
6
  export { PostgreSqlMikroORM as MikroORM, type PostgreSqlOptions as Options, definePostgreSqlConfig as defineConfig, } from './PostgreSqlMikroORM.js';
6
7
  export { raw } from './raw.js';
package/index.js CHANGED
@@ -2,5 +2,6 @@ export * from '@mikro-orm/sql';
2
2
  export * from './PostgreSqlConnection.js';
3
3
  export * from './PostgreSqlDriver.js';
4
4
  export * from './PostgreSqlPlatform.js';
5
+ export { PostgreSqlEntityManager as EntityManager } from './PostgreSqlEntityManager.js';
5
6
  export { PostgreSqlMikroORM as MikroORM, definePostgreSqlConfig as defineConfig, } from './PostgreSqlMikroORM.js';
6
7
  export { raw } from './raw.js';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mikro-orm/postgresql",
3
3
  "type": "module",
4
- "version": "7.0.0-dev.174",
4
+ "version": "7.0.0-dev.176",
5
5
  "description": "TypeScript ORM for Node.js based on Data Mapper, Unit of Work and Identity Map patterns. Supports MongoDB, MySQL, PostgreSQL and SQLite databases as well as usage with vanilla JavaScript.",
6
6
  "exports": {
7
7
  "./package.json": "./package.json",
@@ -50,7 +50,7 @@
50
50
  "access": "public"
51
51
  },
52
52
  "dependencies": {
53
- "@mikro-orm/sql": "7.0.0-dev.174",
53
+ "@mikro-orm/sql": "7.0.0-dev.176",
54
54
  "kysely": "0.28.10",
55
55
  "pg": "8.17.2",
56
56
  "pg-cursor": "2.16.2",
@@ -62,6 +62,6 @@
62
62
  "@mikro-orm/core": "^6.6.4"
63
63
  },
64
64
  "peerDependencies": {
65
- "@mikro-orm/core": "7.0.0-dev.174"
65
+ "@mikro-orm/core": "7.0.0-dev.176"
66
66
  }
67
67
  }