@webda/postgres 4.0.0-beta.8 → 4.0.0-beta.9

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.
package/README.md CHANGED
@@ -66,6 +66,8 @@ Or rely on libpq environment variables (`PGHOST`, `PGPORT`, `PGDATABASE`, `PGUSE
66
66
  |---|---|---|---|---|
67
67
  | `postgresqlServer` | `ClientConfig` \| `PoolConfig` | libpq env vars | No | PostgreSQL connection config (host, port, database, user, password) |
68
68
  | `usePool` | boolean | `false` | No | Use a connection pool (`pg.Pool`) instead of a single client |
69
+ | `table` | string | — | No | Table of every model of the store (subclasses and fallback models included), as in Webda 3 |
70
+ | `tables` | object | `{}` | No | Per-model table overrides: `{ "MyApp/Model": "my_table" }` |
69
71
  | `autoCreateTable` | boolean | `true` | No | Automatically create the JSONB table if it does not exist |
70
72
  | `viewPrefix` | string | `""` | No | Prefix for auto-generated SQL views |
71
73
  | `views` | string[] | `["regex:.*"]` | No | Regexp list of model names to generate views for |
@@ -1,4 +1,4 @@
1
- import type { ModelClass, Repository } from "@webda/core";
1
+ import type { MigratableStore, ModelClass, RawPage, RawPatch, RawTable, Repository, StoredTypeCounts } from "@webda/core";
2
2
  import pg, { ClientConfig, PoolConfig } from "pg";
3
3
  import { PostgresRepository, SQLStore, SQLStoreParameters } from "./sqlstore.js";
4
4
  /**
@@ -39,7 +39,8 @@ export declare class PostgresParameters extends SQLStoreParameters {
39
39
  /**
40
40
  * Per-model table name overrides.
41
41
  * Maps a model identifier (e.g. "Webda/User") to a custom table name.
42
- * When not specified, defaults are: primary model → `table`, others → identifier lowercased with "/" → "_".
42
+ * When not specified, every model of the store uses `table` (as Webda 3 did), or without `table` its identifier
43
+ * lowercased with "/" → "_".
43
44
  */
44
45
  tables?: {
45
46
  [modelIdentifier: string]: string;
@@ -67,7 +68,7 @@ export declare class PostgresParameters extends SQLStoreParameters {
67
68
  *
68
69
  * @WebdaModda
69
70
  */
70
- export declare class PostgresStore<K extends PostgresParameters = PostgresParameters> extends SQLStore<K> {
71
+ export declare class PostgresStore<K extends PostgresParameters = PostgresParameters> extends SQLStore<K> implements MigratableStore {
71
72
  client: pg.Client | pg.Pool;
72
73
  /**
73
74
  * True when {@link client} is a shared pool acquired from the registry.
@@ -92,8 +93,8 @@ export declare class PostgresStore<K extends PostgresParameters = PostgresParame
92
93
  *
93
94
  * Resolution order:
94
95
  * 1. `parameters.tables[meta.Identifier]` — explicit per-model override
95
- * 2. Single-model back-compat: when only one model is configured, `parameters.table` maps to it
96
- * (and to its subclasses) — not to models routed to this store as fallback
96
+ * 2. `parameters.table` — the table of every model of the store, subclasses and models routed to this store as
97
+ * fallback included: the rows stay where Webda 3 wrote them
97
98
  * 3. Default — model identifier lowercased with "/" replaced by "_"
98
99
  *
99
100
  * @param model - the model class to resolve the table for
@@ -101,12 +102,18 @@ export declare class PostgresStore<K extends PostgresParameters = PostgresParame
101
102
  */
102
103
  resolveTable(model: ModelClass): string;
103
104
  /**
104
- * The model a table was declared for, owner of the rows written before `__type` stamping:
105
- * the configured model of a single-model `table`, otherwise the model itself (its own or explicit table)
105
+ * The model a table was declared for, owner of the rows written before `__type` stamping: the first model of
106
+ * `models` stored in the same table, otherwise the model itself (its own table)
106
107
  * @param model - the model class
107
108
  * @returns the model identifier
108
109
  */
109
110
  resolveTableModel(model: ModelClass): string | undefined;
111
+ /**
112
+ * The first model of `models` stored in a table
113
+ * @param table - the table name
114
+ * @returns the model, undefined when no configured model is stored in it
115
+ */
116
+ protected tableRootOf(table: string): any;
110
117
  /**
111
118
  * Stamp `__type` on the rows written before stamping, with the model each table was declared for
112
119
  *
@@ -151,6 +158,45 @@ export declare class PostgresStore<K extends PostgresParameters = PostgresParame
151
158
  * @returns the per-model PostgresRepository instances
152
159
  */
153
160
  getRepositories(): PostgresRepository<any>[];
161
+ /**
162
+ * Every table of the store, each with the model owning its untyped rows
163
+ * @override
164
+ */
165
+ getRawTables(): RawTable[];
166
+ /**
167
+ * Refuse a table this store does not manage: the name is written in the statements
168
+ * @param table - the table name
169
+ */
170
+ protected checkRawTable(table: string): void;
171
+ /**
172
+ * Rows ordered by key, the token is the last key of the page
173
+ * @override
174
+ */
175
+ rawPages(table: string, batchSize: number, token?: string): Promise<RawPage>;
176
+ /**
177
+ * Merge the fields into the row: one statement, no read
178
+ * @override
179
+ */
180
+ rawPatch(table: string, key: string, patch: RawPatch): Promise<void>;
181
+ /**
182
+ * Exact counts with one `GROUP BY` per table: never truncated
183
+ * @override
184
+ */
185
+ countStoredTypes(_maxRows: number): Promise<StoredTypeCounts>;
186
+ /**
187
+ * Rewrite the Webda 3 types of the store to their Webda 4 identifiers
188
+ * @param dryRun - only count the rows to migrate, write nothing
189
+ * @param batch - rows per page
190
+ * @param allowUnknown - exit with 0 even when rows keep an unknown or ambiguous type
191
+ * @returns the exit code
192
+ */
193
+ migrate(
194
+ /** @description Only count the rows to migrate, write nothing */
195
+ dryRun?: boolean,
196
+ /** @description Rows per page */
197
+ batch?: number,
198
+ /** @description Exit with 0 even when rows keep an unknown or ambiguous type */
199
+ allowUnknown?: boolean): Promise<number>;
154
200
  /**
155
201
  * Create views for each model that is stored in a PostgresStore.
156
202
  *
@@ -1 +1 @@
1
- {"version":3,"file":"postgresstore.service.d.ts","sourceRoot":"","sources":["../src/postgresstore.service.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE1D,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAElD,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAcjF;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,kBAAkB;IACxD;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IAC7C;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAEjB;;;;OAIG;IACH,MAAM,CAAC,EAAE;QAAE,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAE/C;;;;OAIG;IACH,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAQtB;CACF;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,aAAa,CAAC,CAAC,SAAS,kBAAkB,GAAG,kBAAkB,CAAE,SAAQ,QAAQ,CAAC,CAAC,CAAC;IAC/F,MAAM,EAAE,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC;IAC5B;;;OAGG;IACH,SAAS,CAAC,QAAQ,UAAS;IAC3B;;;OAGG;IACH,SAAS,CAAC,WAAW,6BAAoC;IAEzD;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAiB1B;IAED;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAY1B;IAED;;;;;;;;;;;OAWG;IACH,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAmBtC;IAED;;;;;OAKG;IACH,iBAAiB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAcvD;IAED;;;;;;OAMG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAMrC;IAED;;;OAGG;IACG,UAAU,kBASf;IAED;;;;;;OAMG;IACG,WAAW,CAAC,IAAI,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAa9D;IAED;;;OAGG;IACH,SAAS,4CAER;IAED;;;;;;;;;;OAUG;IAEH,aAAa,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAe3D;IAED;;;;OAIG;IACH,eAAe,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAgB3C;IAED;;;;;OAKG;IACG,WAAW,kBA6DhB;IAED;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAe7B;CACF;eAEc,aAAa"}
1
+ {"version":3,"file":"postgresstore.service.d.ts","sourceRoot":"","sources":["../src/postgresstore.service.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,eAAe,EACf,UAAU,EACV,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAElD,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAajF;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,kBAAkB;IACxD;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IAC7C;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAEjB;;;;;OAKG;IACH,MAAM,CAAC,EAAE;QAAE,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAE/C;;;;OAIG;IACH,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAQtB;CACF;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,aAAa,CAAC,CAAC,SAAS,kBAAkB,GAAG,kBAAkB,CAC1E,SAAQ,QAAQ,CAAC,CAAC,CAClB,YAAW,eAAe;IAE1B,MAAM,EAAE,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC;IAC5B;;;OAGG;IACH,SAAS,CAAC,QAAQ,UAAS;IAC3B;;;OAGG;IACH,SAAS,CAAC,WAAW,6BAAoC;IAEzD;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAW1B;IAED;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAY1B;IAED;;;;;;;;;;;OAWG;IACH,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CActC;IAED;;;;;OAKG;IACH,iBAAiB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAMvD;IAED;;;;OAIG;IACH,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAaxC;IAED;;;;;;OAMG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAMrC;IAED;;;OAGG;IACG,UAAU,kBASf;IAED;;;;;;OAMG;IACG,WAAW,CAAC,IAAI,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAa9D;IAED;;;OAGG;IACH,SAAS,4CAER;IAED;;;;;;;;;;OAUG;IAEH,aAAa,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAe3D;IAED;;;;OAIG;IACH,eAAe,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAgB3C;IAED;;;OAGG;IACH,YAAY,IAAI,QAAQ,EAAE,CAezB;IAED;;;OAGG;IACH,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAI3C;IAED;;;OAGG;IACG,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAoBjF;IAED;;;OAGG;IACG,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CASzE;IAED;;;OAGG;IACG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAgBlE;IAED;;;;;;OAMG;IAKG,OAAO;IACX,iEAAiE;IACjE,MAAM,GAAE,OAAe;IACvB,iCAAiC;IACjC,KAAK,GAAE,MAAY;IACnB,gFAAgF;IAChF,YAAY,GAAE,OAAe,GAC5B,OAAO,CAAC,MAAM,CAAC,CAEjB;IAED;;;;;OAKG;IACG,WAAW,kBA6DhB;IAED;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAe7B;CACF;eAEc,aAAa"}
@@ -32,11 +32,10 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn,
32
32
  if (target) Object.defineProperty(target, contextIn.name, descriptor);
33
33
  done = true;
34
34
  };
35
- import { EventRepository, InstanceCache, SecretString, useApplication, useCore, useModel, useModelMetadata } from "@webda/core";
35
+ import { Command, EventRepository, InstanceCache, SecretString, UNREADABLE, UNTYPED, useApplication, useCore, useModel, useModelMetadata } from "@webda/core";
36
36
  import pg from "pg";
37
37
  import { acquirePool, releasePool } from "./pgpool.js";
38
38
  import { PostgresRepository, SQLStore, SQLStoreParameters } from "./sqlstore.js";
39
- import { useLog } from "@webda/workout";
40
39
  /*
41
40
  * Ideas:
42
41
  * - Make views for each models to have a better query: https://dba.stackexchange.com/questions/151838/postgresql-json-column-to-view
@@ -87,6 +86,7 @@ let PostgresStore = (() => {
87
86
  let _classSuper = SQLStore;
88
87
  let _instanceExtraInitializers = [];
89
88
  let _getRepository_decorators;
89
+ let _migrate_decorators;
90
90
  return _a = class PostgresStore extends _classSuper {
91
91
  constructor() {
92
92
  super(...arguments);
@@ -106,9 +106,6 @@ let PostgresStore = (() => {
106
106
  * @override
107
107
  */
108
108
  async init() {
109
- if (this.parameters.table && (this.parameters.models?.length ?? 0) > 1) {
110
- useLog("WARN", `PostgresStore "${this.getName()}": parameters.table is ignored when more than one model is configured. Use parameters.tables[id] instead.`);
111
- }
112
109
  if (this.parameters.usePool) {
113
110
  this.client = acquirePool(this.parameters.postgresqlServer);
114
111
  this.ownsPool = true;
@@ -143,8 +140,8 @@ let PostgresStore = (() => {
143
140
  *
144
141
  * Resolution order:
145
142
  * 1. `parameters.tables[meta.Identifier]` — explicit per-model override
146
- * 2. Single-model back-compat: when only one model is configured, `parameters.table` maps to it
147
- * (and to its subclasses) — not to models routed to this store as fallback
143
+ * 2. `parameters.table` — the table of every model of the store, subclasses and models routed to this store as
144
+ * fallback included: the rows stay where Webda 3 wrote them
148
145
  * 3. Default — model identifier lowercased with "/" replaced by "_"
149
146
  *
150
147
  * @param model - the model class to resolve the table for
@@ -159,18 +156,15 @@ let PostgresStore = (() => {
159
156
  if (this.parameters.tables?.[meta.Identifier]) {
160
157
  return this.parameters.tables[meta.Identifier];
161
158
  }
162
- // Single-model back-compat: parameters.table maps to the one model and its hierarchy
163
- if (this.parameters.models?.length === 1 &&
164
- this.parameters.table &&
165
- (this.parameters.models[0] === meta.Identifier || this.handleModel(model) >= 0)) {
159
+ if (this.parameters.table) {
166
160
  return this.parameters.table;
167
161
  }
168
162
  // Default derivation
169
163
  return meta.Identifier.toLowerCase().replace(/\//g, "_");
170
164
  }
171
165
  /**
172
- * The model a table was declared for, owner of the rows written before `__type` stamping:
173
- * the configured model of a single-model `table`, otherwise the model itself (its own or explicit table)
166
+ * The model a table was declared for, owner of the rows written before `__type` stamping: the first model of
167
+ * `models` stored in the same table, otherwise the model itself (its own table)
174
168
  * @param model - the model class
175
169
  * @returns the model identifier
176
170
  */
@@ -179,13 +173,27 @@ let PostgresStore = (() => {
179
173
  if (!meta) {
180
174
  return undefined;
181
175
  }
182
- if (!this.parameters.tables?.[meta.Identifier] &&
183
- this.parameters.models?.length === 1 &&
184
- this.parameters.table &&
185
- (this.parameters.models[0] === meta.Identifier || this.handleModel(model) >= 0)) {
186
- return this.parameters.models[0];
176
+ return this.tableRootOf(this.resolveTable(model))?.Metadata?.Identifier ?? meta.Identifier;
177
+ }
178
+ /**
179
+ * The first model of `models` stored in a table
180
+ * @param table - the table name
181
+ * @returns the model, undefined when no configured model is stored in it
182
+ */
183
+ tableRootOf(table) {
184
+ for (const identifier of this.parameters.models ?? []) {
185
+ let model;
186
+ try {
187
+ model = useModel(identifier);
188
+ }
189
+ catch {
190
+ continue;
191
+ }
192
+ if (model && this.resolveTable(model) === table) {
193
+ return model;
194
+ }
187
195
  }
188
- return meta.Identifier;
196
+ return undefined;
189
197
  }
190
198
  /**
191
199
  * Stamp `__type` on the rows written before stamping, with the model each table was declared for
@@ -285,6 +293,103 @@ let PostgresStore = (() => {
285
293
  }
286
294
  return repos;
287
295
  }
296
+ /**
297
+ * Every table of the store, each with the model owning its untyped rows
298
+ * @override
299
+ */
300
+ getRawTables() {
301
+ const names = new Set();
302
+ if (this.parameters.table) {
303
+ names.add(this.parameters.table);
304
+ }
305
+ for (const repo of this.getRepositories()) {
306
+ names.add(repo.getTable());
307
+ }
308
+ return [...names].map(name => ({
309
+ name,
310
+ root: this.tableRootOf(name) ??
311
+ this.getRepositories().find(repo => repo.getTable() === name)?.["model"] ??
312
+ this.getTableRoot()
313
+ }));
314
+ }
315
+ /**
316
+ * Refuse a table this store does not manage: the name is written in the statements
317
+ * @param table - the table name
318
+ */
319
+ checkRawTable(table) {
320
+ if (!this.getRawTables().some(t => t.name === table)) {
321
+ throw new Error(`Unknown table ${table} in store ${this.getName()}`);
322
+ }
323
+ }
324
+ /**
325
+ * Rows ordered by key, the token is the last key of the page
326
+ * @override
327
+ */
328
+ async rawPages(table, batchSize, token) {
329
+ this.checkRawTable(table);
330
+ // The key is compared in the column own type (Webda 3 created some `uuid` columns as uuid), with its index
331
+ const res = token === undefined
332
+ ? await this.client.query(`SELECT uuid, data FROM ${table} ORDER BY uuid LIMIT $1`, [batchSize + 1])
333
+ : await this.client.query(`SELECT uuid, data FROM ${table} WHERE uuid > $1 ORDER BY uuid LIMIT $2`, [
334
+ token,
335
+ batchSize + 1
336
+ ]);
337
+ const rows = res.rows.slice(0, batchSize).map(row => {
338
+ const data = row.data;
339
+ return data && typeof data === "object" && !Array.isArray(data)
340
+ ? { table, key: row.uuid, data }
341
+ : { table, key: row.uuid, data: {}, unreadable: true };
342
+ });
343
+ return {
344
+ rows,
345
+ continuationToken: res.rows.length > batchSize ? rows[rows.length - 1].key : undefined
346
+ };
347
+ }
348
+ /**
349
+ * Merge the fields into the row: one statement, no read
350
+ * @override
351
+ */
352
+ async rawPatch(table, key, patch) {
353
+ this.checkRawTable(table);
354
+ const res = await this.client.query(`UPDATE ${table} SET data = data || $1::jsonb WHERE uuid = $2 AND jsonb_typeof(data) = 'object'`, [JSON.stringify(patch), key]);
355
+ if (res.rowCount === 0) {
356
+ throw new Error(`Raw row not found or not a JSON object: ${key}`);
357
+ }
358
+ }
359
+ /**
360
+ * Exact counts with one `GROUP BY` per table: never truncated
361
+ * @override
362
+ */
363
+ async countStoredTypes(_maxRows) {
364
+ const result = { tables: {}, truncated: false };
365
+ for (const { name } of this.getRawTables()) {
366
+ const counts = {};
367
+ const res = await this.client.query(`SELECT CASE WHEN jsonb_typeof(data) IS DISTINCT FROM 'object' THEN $1
368
+ WHEN jsonb_typeof(data->'__type') = 'string' AND data->>'__type' <> '' THEN data->>'__type'
369
+ ELSE $2 END AS type, count(*)::int AS n FROM ${name} GROUP BY 1`, [UNREADABLE, UNTYPED]);
370
+ for (const row of res.rows) {
371
+ counts[row.type] = row.n;
372
+ }
373
+ result.tables[name] = counts;
374
+ }
375
+ return result;
376
+ }
377
+ /**
378
+ * Rewrite the Webda 3 types of the store to their Webda 4 identifiers
379
+ * @param dryRun - only count the rows to migrate, write nothing
380
+ * @param batch - rows per page
381
+ * @param allowUnknown - exit with 0 even when rows keep an unknown or ambiguous type
382
+ * @returns the exit code
383
+ */
384
+ async migrate(
385
+ /** @description Only count the rows to migrate, write nothing */
386
+ dryRun = false,
387
+ /** @description Rows per page */
388
+ batch = 500,
389
+ /** @description Exit with 0 even when rows keep an unknown or ambiguous type */
390
+ allowUnknown = false) {
391
+ return this.migrateCommand(dryRun, batch, allowUnknown);
392
+ }
288
393
  /**
289
394
  * Create views for each model that is stored in a PostgresStore.
290
395
  *
@@ -377,7 +482,12 @@ let PostgresStore = (() => {
377
482
  (() => {
378
483
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
379
484
  _getRepository_decorators = [InstanceCache()];
485
+ _migrate_decorators = [Command("migrate", {
486
+ description: "Rewrite the Webda 3 types of the stores to their Webda 4 identifiers",
487
+ phase: "initialized"
488
+ })];
380
489
  __esDecorate(_a, null, _getRepository_decorators, { kind: "method", name: "getRepository", static: false, private: false, access: { has: obj => "getRepository" in obj, get: obj => obj.getRepository }, metadata: _metadata }, null, _instanceExtraInitializers);
490
+ __esDecorate(_a, null, _migrate_decorators, { kind: "method", name: "migrate", static: false, private: false, access: { has: obj => "migrate" in obj, get: obj => obj.migrate }, metadata: _metadata }, null, _instanceExtraInitializers);
381
491
  if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
382
492
  })(),
383
493
  _a;
@@ -1 +1 @@
1
- {"version":3,"file":"postgresstore.service.js","sourceRoot":"","sources":["../src/postgresstore.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postgresstore.service.js","sourceRoot":"","sources":["../src/postgresstore.service.ts"],"names":[],"mappings":"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"}
package/lib/sqlstore.d.ts CHANGED
@@ -169,11 +169,37 @@ export declare class PostgresRepository<T extends ModelClass> extends MemoryRepo
169
169
  */
170
170
  protected checkPath(attribute: string[]): string;
171
171
  /**
172
- * SQL condition restricting rows to this model and its subclasses, as `__type` stamps them; rows without a stamp
173
- * (written before stamping) belong to every model of the table
172
+ * SQL condition restricting rows to this model and its subclasses, whatever form their `__type` has (Webda 3 short,
173
+ * lower-case and aliased types included); rows without a stamp (written before stamping) and rows typed as a
174
+ * strict ancestor of the table model belong to the table model and its ancestors
174
175
  * @returns the condition, undefined for a model without metadata
175
176
  */
176
177
  protected getClassCondition(): string | undefined;
178
+ /**
179
+ * The class of the table model, when it is this model or one of its subclasses
180
+ * @returns the class, undefined when the table model is unknown or outside the model family
181
+ */
182
+ protected tableModelClass(): any;
183
+ /**
184
+ * Stored types naming a strict ancestor of the table model (e.g. `CoreModel` in a table of an application model):
185
+ * such rows belong to the table model, like unstamped rows
186
+ * @returns the current identifier of the table model by lower-cased stored type, empty when this model does not own
187
+ * the table
188
+ */
189
+ protected rootAncestorTypes(): Record<string, string>;
190
+ /**
191
+ * Stored types to rewrite when a row of this model family is written: each legacy form (short, lower-case, alias)
192
+ * to its current identifier, and the ancestor types of the table model to the table model
193
+ * @returns the current identifier by lower-cased stored type
194
+ */
195
+ protected legacyTypeMap(): Record<string, string>;
196
+ /**
197
+ * SQL expression of the `__type` a written row keeps: its stored type, rewritten to the current identifier when it
198
+ * is a legacy form of this model family
199
+ * @param mapParam - position of the bound {@link legacyTypeMap} parameter
200
+ * @returns the jsonb expression
201
+ */
202
+ protected keptTypeExpression(mapParam: number): string;
177
203
  /**
178
204
  * The type an object written by the application declares: the `__type` its row was read with (non-enumerable,
179
205
  * set by {@link fromJSON}), else the identifier of its class. Plain data declares none, whatever its keys.
@@ -1 +1 @@
1
- {"version":3,"file":"sqlstore.d.ts","sourceRoot":"","sources":["../src/sqlstore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqlstore.d.ts","sourceRoot":"","sources":["../src/sqlstore.ts"],"names":[],"mappings":"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"}
package/lib/sqlstore.js CHANGED
@@ -217,8 +217,9 @@ export class PostgresRepository extends MemoryRepository {
217
217
  return attribute.join(",");
218
218
  }
219
219
  /**
220
- * SQL condition restricting rows to this model and its subclasses, as `__type` stamps them; rows without a stamp
221
- * (written before stamping) belong to every model of the table
220
+ * SQL condition restricting rows to this model and its subclasses, whatever form their `__type` has (Webda 3 short,
221
+ * lower-case and aliased types included); rows without a stamp (written before stamping) and rows typed as a
222
+ * strict ancestor of the table model belong to the table model and its ancestors
222
223
  * @returns the condition, undefined for a model without metadata
223
224
  */
224
225
  getClassCondition() {
@@ -226,9 +227,84 @@ export class PostgresRepository extends MemoryRepository {
226
227
  if (!ids) {
227
228
  return undefined;
228
229
  }
229
- const typed = `data->>'__type' IN (${ids.map(sqlString).join(", ")})`;
230
+ // Stored types resolve case-insensitively (`WEBDA/USER` is `Webda/User`)
231
+ const accepted = [...new Set([...ids, ...this.acceptedTypes()].map(name => name.toLowerCase()))];
232
+ const typed = `lower(data->>'__type') IN (${accepted.map(sqlString).join(", ")})`;
230
233
  // Unstamped rows belong to the table model: its repository and its ancestors' see them, a subclass never does
231
- return this.tableModel && ids.includes(this.tableModel) ? `(${typed} OR data->>'__type' IS NULL)` : `(${typed})`;
234
+ if (!this.tableModel || !ids.includes(this.tableModel)) {
235
+ return `(${typed})`;
236
+ }
237
+ const ancestors = Object.keys(this.rootAncestorTypes());
238
+ return `(${typed} OR data->>'__type' IS NULL OR data->>'__type' = ''${ancestors.length ? ` OR lower(data->>'__type') IN (${ancestors.map(sqlString).join(", ")})` : ""})`;
239
+ }
240
+ /**
241
+ * The class of the table model, when it is this model or one of its subclasses
242
+ * @returns the class, undefined when the table model is unknown or outside the model family
243
+ */
244
+ tableModelClass() {
245
+ if (!this.tableModel || !this.model?.Metadata?.Identifier) {
246
+ return undefined;
247
+ }
248
+ return this.typeResolver()
249
+ .family(this.model)
250
+ .find(clazz => clazz.Metadata?.Identifier === this.tableModel);
251
+ }
252
+ /**
253
+ * Stored types naming a strict ancestor of the table model (e.g. `CoreModel` in a table of an application model):
254
+ * such rows belong to the table model, like unstamped rows
255
+ * @returns the current identifier of the table model by lower-cased stored type, empty when this model does not own
256
+ * the table
257
+ */
258
+ rootAncestorTypes() {
259
+ const root = this.tableModelClass();
260
+ const types = {};
261
+ if (!root) {
262
+ return types;
263
+ }
264
+ const resolver = this.typeResolver();
265
+ for (let clazz = Object.getPrototypeOf(root); clazz && clazz !== Function.prototype;) {
266
+ if (Object.prototype.hasOwnProperty.call(clazz, "Metadata") && clazz.Metadata?.Identifier) {
267
+ const names = resolver.knows(clazz) ? resolver.acceptedTypes(clazz) : [clazz.Metadata.Identifier];
268
+ for (const name of names) {
269
+ if (!resolver.knows(clazz) || resolver.resolveStoredType(name) === clazz) {
270
+ types[name.toLowerCase()] = this.tableModel;
271
+ }
272
+ }
273
+ }
274
+ clazz = Object.getPrototypeOf(clazz);
275
+ }
276
+ return types;
277
+ }
278
+ /**
279
+ * Stored types to rewrite when a row of this model family is written: each legacy form (short, lower-case, alias)
280
+ * to its current identifier, and the ancestor types of the table model to the table model
281
+ * @returns the current identifier by lower-cased stored type
282
+ */
283
+ legacyTypeMap() {
284
+ if (!this.model?.Metadata?.Identifier) {
285
+ return {};
286
+ }
287
+ const resolver = this.typeResolver();
288
+ const map = { ...this.rootAncestorTypes() };
289
+ for (const name of this.acceptedTypes()) {
290
+ const resolved = resolver.resolveStoredType(name);
291
+ const current = resolved
292
+ ? (resolver.getIdentifier(resolved) ?? resolved.Metadata?.Identifier)
293
+ : undefined;
294
+ if (current) {
295
+ map[name.toLowerCase()] = current;
296
+ }
297
+ }
298
+ return map;
299
+ }
300
+ /**
301
+ * SQL expression of the `__type` a written row keeps: its stored type, rewritten to the current identifier when it
302
+ * is a legacy form of this model family
303
+ * @param mapParam - position of the bound {@link legacyTypeMap} parameter
304
+ * @returns the jsonb expression
305
+ */
306
+ keptTypeExpression(mapParam) {
307
+ return `COALESCE($${mapParam}::jsonb -> lower(data->>'__type'), data->'__type')`;
232
308
  }
233
309
  /**
234
310
  * The type an object written by the application declares: the `__type` its row was read with (non-enumerable,
@@ -294,7 +370,10 @@ export class PostgresRepository extends MemoryRepository {
294
370
  */
295
371
  fromJSON(stored) {
296
372
  const { __type, ...data } = stored ?? {};
297
- const instance = new this.model({});
373
+ const typed = typeof __type === "string" && __type !== "";
374
+ // A row loads as the class its type resolves to (a Webda 3 form included): a subclass row as the subclass
375
+ const clazz = (typed && this.findModelClass(__type)) || this.model;
376
+ const instance = new clazz({});
298
377
  if (typeof instance.load === "function") {
299
378
  instance.load(data);
300
379
  }
@@ -303,7 +382,8 @@ export class PostgresRepository extends MemoryRepository {
303
382
  }
304
383
  if (__type !== undefined) {
305
384
  Object.defineProperty(instance, "__type", {
306
- value: __type,
385
+ // The current identifier of a legacy type, the stored value when it is unknown or ambiguous
386
+ value: typed ? this.currentTypeOf(instance, __type) : __type,
307
387
  enumerable: false,
308
388
  configurable: true,
309
389
  writable: true
@@ -345,10 +425,13 @@ export class PostgresRepository extends MemoryRepository {
345
425
  async update(data, conditionField, condition) {
346
426
  const key = this.getPrimaryKey(data).toString();
347
427
  const args = [this.toStoredJSON(data), key];
348
- // Plain data keeps the stored type: a write through a parent repository never re-types a subclass row
349
- let q = this.declaredType(data)
350
- ? `UPDATE ${this.table} SET data=$1 WHERE uuid=$2`
351
- : `UPDATE ${this.table} SET data = CASE WHEN data ? '__type' THEN $1::jsonb || jsonb_build_object('__type', data->'__type') ELSE $1::jsonb END WHERE uuid=$2`;
428
+ // Plain data keeps the stored type: a write through a parent repository never re-types a subclass row; a legacy
429
+ // form of it is written as the current identifier
430
+ let q = `UPDATE ${this.table} SET data=$1 WHERE uuid=$2`;
431
+ if (!this.declaredType(data)) {
432
+ args.push(JSON.stringify(this.legacyTypeMap()));
433
+ q = `UPDATE ${this.table} SET data = CASE WHEN data ? '__type' THEN $1::jsonb || jsonb_build_object('__type', ${this.keptTypeExpression(3)}) ELSE $1::jsonb END WHERE uuid=$2`;
434
+ }
352
435
  if (conditionField) {
353
436
  q += this.getQueryCondition(condition, conditionField, args);
354
437
  }
@@ -362,6 +445,11 @@ export class PostgresRepository extends MemoryRepository {
362
445
  const key = this.getPrimaryKey(primaryKey).toString();
363
446
  const args = [JSON.stringify(data), key];
364
447
  let q = `UPDATE ${this.table} SET data = data || $1::jsonb WHERE uuid=$2`;
448
+ if (!Object.prototype.hasOwnProperty.call(data ?? {}, "__type")) {
449
+ // A legacy form of the stored type is written as the current identifier
450
+ args.push(JSON.stringify(this.legacyTypeMap()));
451
+ q = `UPDATE ${this.table} SET data = CASE WHEN data ? '__type' THEN (data || $1::jsonb) || jsonb_build_object('__type', ${this.keptTypeExpression(3)}) ELSE data || $1::jsonb END WHERE uuid=$2`;
452
+ }
365
453
  if (conditionField) {
366
454
  q += this.getQueryCondition(condition, conditionField, args);
367
455
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sqlstore.js","sourceRoot":"","sources":["../src/sqlstore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqlstore.js","sourceRoot":"","sources":["../src/sqlstore.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webda/postgres",
3
- "version": "4.0.0-beta.8",
3
+ "version": "4.0.0-beta.9",
4
4
  "description": "Implements Postgres on webda",
5
5
  "keywords": [
6
6
  "postgres",
@@ -16,10 +16,10 @@
16
16
  "typings": "lib/index.d.ts",
17
17
  "dependencies": {
18
18
  "pg": "^8.20.0",
19
- "@webda/core": "4.0.0-beta.8",
20
- "@webda/ql": "4.0.0-beta.7",
21
- "@webda/utils": "4.0.0-beta.8",
22
- "@webda/workout": "4.0.0-beta.5"
19
+ "@webda/core": "4.0.0-beta.9",
20
+ "@webda/utils": "4.0.0-beta.9",
21
+ "@webda/workout": "4.0.0-beta.5",
22
+ "@webda/ql": "4.0.0-beta.8"
23
23
  },
24
24
  "files": [
25
25
  "lib",
@@ -43,8 +43,8 @@
43
43
  "typescript": "7.1.0-dev.20260929.1",
44
44
  "vite": "^6.0.0",
45
45
  "vitest": "^4.1.2",
46
- "@webda/test": "4.0.0-beta.7",
47
- "@webda/compiler": "^4.0.0-beta.8"
46
+ "@webda/compiler": "^4.0.0-beta.9",
47
+ "@webda/test": "4.0.0-beta.7"
48
48
  },
49
49
  "type": "module",
50
50
  "engines": {
package/webda.module.json CHANGED
@@ -2174,13 +2174,6 @@
2174
2174
  "additionalProperties": false,
2175
2175
  "type": "object"
2176
2176
  },
2177
- "modelAliases#2": {
2178
- "additionalProperties": {
2179
- "type": "string"
2180
- },
2181
- "description": "Model Aliases to allow easier rename of Model",
2182
- "type": "object"
2183
- },
2184
2177
  "new () => ClientBase": {
2185
2178
  "additionalProperties": false,
2186
2179
  "type": "object"
@@ -2189,7 +2182,23 @@
2189
2182
  "additionalProperties": {
2190
2183
  "type": "string"
2191
2184
  },
2192
- "description": "Per-model table name overrides.\nMaps a model identifier (e.g. \"Webda/User\") to a custom table name.\nWhen not specified, defaults are: primary model → `table`, others → identifier lowercased with \"/\" → \"_\".",
2185
+ "description": "Per-model table name overrides.\nMaps a model identifier (e.g. \"Webda/User\") to a custom table name.\nWhen not specified, every model of the store uses `table` (as Webda 3 did), or without `table` its identifier\nlowercased with \"/\" → \"_\".",
2186
+ "type": "object"
2187
+ },
2188
+ "typeCheck#2": {
2189
+ "additionalProperties": false,
2190
+ "description": "Startup check of the stored types: one WARN listing the legacy, untyped and unknown types found",
2191
+ "properties": {
2192
+ "enabled": {
2193
+ "default": true,
2194
+ "type": "boolean"
2195
+ },
2196
+ "maxRows": {
2197
+ "default": 10000,
2198
+ "description": "Rows scanned at most by stores without a native count; beyond, the counts are \"at least\"",
2199
+ "type": "number"
2200
+ }
2201
+ },
2193
2202
  "type": "object"
2194
2203
  }
2195
2204
  },
@@ -2212,26 +2221,12 @@
2212
2221
  "database": {
2213
2222
  "$ref": "#/definitions/SQLDatabase"
2214
2223
  },
2215
- "defaultModel": {
2216
- "default": true,
2217
- "description": "When __type model not found, use the model\nIf strict is setup this parameter is not used",
2218
- "type": "boolean"
2219
- },
2220
- "forceModel": {
2221
- "default": false,
2222
- "description": "If set, Store will ignore the __type",
2223
- "type": "boolean"
2224
- },
2225
2224
  "maxGroups": {
2226
2225
  "default": 10000,
2227
2226
  "description": "Maximum number of groups an aggregation may produce without LIMIT (or in memory)",
2228
2227
  "minimum": 1,
2229
2228
  "type": "number"
2230
2229
  },
2231
- "modelAliases": {
2232
- "$ref": "#/definitions/modelAliases%232",
2233
- "description": "Model Aliases to allow easier rename of Model"
2234
- },
2235
2230
  "models": {
2236
2231
  "default": [
2237
2232
  "Webda/RegistryEntry"
@@ -2277,12 +2272,16 @@
2277
2272
  },
2278
2273
  "tables": {
2279
2274
  "$ref": "#/definitions/tables%232",
2280
- "description": "Per-model table name overrides.\nMaps a model identifier (e.g. \"Webda/User\") to a custom table name.\nWhen not specified, defaults are: primary model → `table`, others → identifier lowercased with \"/\" → \"_\"."
2275
+ "description": "Per-model table name overrides.\nMaps a model identifier (e.g. \"Webda/User\") to a custom table name.\nWhen not specified, every model of the store uses `table` (as Webda 3 did), or without `table` its identifier\nlowercased with \"/\" → \"_\"."
2281
2276
  },
2282
2277
  "type": {
2283
2278
  "description": "Type of the service",
2284
2279
  "type": "string"
2285
2280
  },
2281
+ "typeCheck": {
2282
+ "$ref": "#/definitions/typeCheck%232",
2283
+ "description": "Startup check of the stored types: one WARN listing the legacy, untyped and unknown types found"
2284
+ },
2286
2285
  "usePool": {
2287
2286
  "default": false,
2288
2287
  "type": "boolean"
@@ -2321,7 +2320,34 @@
2321
2320
  "type": "object",
2322
2321
  "title": "PostgresStore"
2323
2322
  },
2324
- "Configuration": "lib/postgresstore.service:PostgresParameters"
2323
+ "Configuration": "lib/postgresstore.service:PostgresParameters",
2324
+ "capabilities": [
2325
+ "store"
2326
+ ],
2327
+ "commands": {
2328
+ "migrate": {
2329
+ "description": "Rewrite the Webda 3 types of the stores to their Webda 4 identifiers",
2330
+ "method": "migrate",
2331
+ "args": {
2332
+ "dryRun": {
2333
+ "type": "boolean",
2334
+ "default": false,
2335
+ "description": "Only count the rows to migrate, write nothing"
2336
+ },
2337
+ "batch": {
2338
+ "type": "number",
2339
+ "default": 500,
2340
+ "description": "Rows per page"
2341
+ },
2342
+ "allowUnknown": {
2343
+ "type": "boolean",
2344
+ "default": false,
2345
+ "description": "Exit with 0 even when rows keep an unknown or ambiguous type"
2346
+ }
2347
+ },
2348
+ "phase": "initialized"
2349
+ }
2350
+ }
2325
2351
  }
2326
2352
  },
2327
2353
  "models": {},