@proteinjs/db 1.31.0 → 1.32.1

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/CHANGELOG.md CHANGED
@@ -3,6 +3,29 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [1.32.1](https://github.com/proteinjs/db/compare/@proteinjs/db@1.32.0...@proteinjs/db@1.32.1) (2026-08-15)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * schema reconcile tolerates concurrent ALREADY_EXISTS — verify-then-succeed, closes the multi-actor boot race ([ef6afa5](https://github.com/proteinjs/db/commit/ef6afa55690f6481435bc4356cf6cc301869e08f))
12
+
13
+
14
+
15
+
16
+
17
+ # [1.32.0](https://github.com/proteinjs/db/compare/@proteinjs/db@1.31.0...@proteinjs/db@1.32.0) (2026-08-14)
18
+
19
+
20
+ ### Features
21
+
22
+ * batched DDL — a table set's schema rides one schema-update operation ([f9e302b](https://github.com/proteinjs/db/commit/f9e302bf088d071c03682ac5f33f5d365aa3a5a4))
23
+ * database lifecycle primitives — createDb(name, { ddl }) and dropDb(name) on DbDriver ([7cdb538](https://github.com/proteinjs/db/commit/7cdb538bcb7824682f92dcdf5a131f39e097df8f))
24
+
25
+
26
+
27
+
28
+
6
29
  # [1.31.0](https://github.com/proteinjs/db/compare/@proteinjs/db@1.30.0...@proteinjs/db@1.31.0) (2026-08-14)
7
30
 
8
31
 
package/dist/src/Db.d.ts CHANGED
@@ -26,6 +26,16 @@ export interface DefaultDbDriverFactory extends Loadable {
26
26
  export interface DbDriver {
27
27
  getDbName(): string;
28
28
  createDbIfNotExists(): Promise<void>;
29
+ /**
30
+ * Create the named database. When `ddl` is provided the statements are applied as part of
31
+ * creation (on Spanner: `CreateDatabase.extra_statements` — one operation, atomic with the
32
+ * create), so the database is born with its full schema. Fails if the database already exists.
33
+ */
34
+ createDb(name: string, options?: {
35
+ ddl?: string[];
36
+ }): Promise<void>;
37
+ /** Drop the named database. */
38
+ dropDb(name: string): Promise<void>;
29
39
  start?(): Promise<void>;
30
40
  stop?(): Promise<void>;
31
41
  getTableManager(): TableManager;
@@ -1 +1 @@
1
- {"version":3,"file":"Db.d.ts","sourceRoot":"","sources":["../../src/Db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Db.d.ts","sourceRoot":"","sources":["../../src/Db.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Db.js","sourceRoot":"","sources":["../../src/Db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Db.js","sourceRoot":"","sources":["../../src/Db.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,27 @@
1
1
  import { Table } from '../Table';
2
2
  export interface SchemaOperations {
3
- createTable(table: Table<any>): Promise<void>;
3
+ /**
4
+ * Create every table in `tables`, in the given order. The order is load-bearing: a table whose
5
+ * foreign keys reference another absent table must appear after it. Drivers that support batched
6
+ * DDL (Spanner) apply the whole set as ONE schema-update operation — statements inside a batch
7
+ * apply in order, so the ordering contract is preserved.
8
+ */
9
+ createTables(tables: Table<any>[]): Promise<void>;
4
10
  alterTable(table: Table<any>, changes: TableChanges): Promise<void>;
11
+ /**
12
+ * Classify a create/alter DDL error as the backend's "already exists" class — the loser's
13
+ * outcome when two actors concurrently create the same table/index or add the same column and
14
+ * the backend serializes the DDL so the object lands exactly once. Backend-specific (each driver
15
+ * owns its error codes/messages), so it is optional: a driver that does not implement it opts out
16
+ * of {@link TableManager}'s concurrent-reconcile tolerance and keeps the strict rethrow.
17
+ *
18
+ * MUST match on error CLASS (status code + a specific message class), never a loose substring —
19
+ * it decides whether a failure is eligible for verify-then-succeed, and a genuine failure that
20
+ * slipped into this class would be masked. The tolerance is still safe because TableManager
21
+ * re-reads and confirms the intended definition before treating it as success; this predicate is
22
+ * the first gate, not the whole guard.
23
+ */
24
+ isAlreadyExistsError?(error: unknown): boolean;
5
25
  }
6
26
  interface Index {
7
27
  name?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaOperations.d.ts","sourceRoot":"","sources":["../../../src/schema/SchemaOperations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrE;AAED,UAAU,KAAK;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,0JAA0J;IAC1J,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,oBAAoB;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,qBAAqB,EAAE,oBAAoB,EAAE,CAAC;IAC9C,8BAA8B,EAAE,MAAM,EAAE,CAAC;IACzC,mBAAmB,EAAE,UAAU,EAAE,CAAC;IAClC,4BAA4B,EAAE,MAAM,EAAE,CAAC;IACvC,iBAAiB,EAAE,UAAU,EAAE,CAAC;IAChC,oCAAoC,EAAE,MAAM,EAAE,CAAC;IAC/C,kCAAkC,EAAE,MAAM,EAAE,CAAC;IAC7C,eAAe,EAAE,KAAK,EAAE,CAAC;IACzB,aAAa,EAAE,KAAK,EAAE,CAAC;CACxB"}
1
+ {"version":3,"file":"SchemaOperations.d.ts","sourceRoot":"","sources":["../../../src/schema/SchemaOperations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,MAAM,WAAW,gBAAgB;IAC/B;;;;;OAKG;IACH,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpE;;;;;;;;;;;;OAYG;IACH,oBAAoB,CAAC,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;CAChD;AAED,UAAU,KAAK;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,0JAA0J;IAC1J,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,oBAAoB;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,qBAAqB,EAAE,oBAAoB,EAAE,CAAC;IAC9C,8BAA8B,EAAE,MAAM,EAAE,CAAC;IACzC,mBAAmB,EAAE,UAAU,EAAE,CAAC;IAClC,4BAA4B,EAAE,MAAM,EAAE,CAAC;IACvC,iBAAiB,EAAE,UAAU,EAAE,CAAC;IAChC,oCAAoC,EAAE,MAAM,EAAE,CAAC;IAC/C,kCAAkC,EAAE,MAAM,EAAE,CAAC;IAC7C,eAAe,EAAE,KAAK,EAAE,CAAC;IACzB,aAAa,EAAE,KAAK,EAAE,CAAC;CACxB"}
@@ -12,8 +12,44 @@ export declare class TableManager {
12
12
  schemaMetadata: SchemaMetadata;
13
13
  constructor(dbDriver: DbDriver, columnTypeFactory: ColumnTypeFactory, schemaOperations: SchemaOperations, schemaMetadata?: SchemaMetadata);
14
14
  tableExists(table: Table<any>): Promise<boolean>;
15
+ /**
16
+ * Reconcile every registered table with the live schema. Absent tables are created as ONE
17
+ * batch (a single schema-update operation on drivers that support it — the prod-boot win),
18
+ * preserving their registration order so foreign keys to other absent tables resolve; existing
19
+ * tables are altered individually after, so an alter that adds a foreign key to a
20
+ * just-created table sees it live.
21
+ */
15
22
  loadTables(): Promise<void>;
16
23
  loadTable(table: Table<any>): Promise<void>;
24
+ private alterTableIfChanged;
25
+ /**
26
+ * Reconcile a create/alter DDL failure against a concurrent schema change, closing the
27
+ * check-then-act race in loadTable/loadTables.
28
+ *
29
+ * On a schema-changing release the migration Job, booting pods, and multiple replicas all run
30
+ * Db.init -> loadTables at once. Reconcile is check-then-act (read INFORMATION_SCHEMA -> decide
31
+ * create/alter -> apply DDL): two actors can both observe the same column/table as absent and
32
+ * both issue the CREATE/ALTER. The backend serializes DDL so the object lands EXACTLY once, but
33
+ * the loser's operation fails with an already-exists / duplicate-name error. Before this
34
+ * reconcile that error propagated out of Db.init — a booting pod with no unhandledRejection
35
+ * handler exited (CrashLoopBackOff) and the migration Job exited 1 (a spurious migration-gate
36
+ * failure).
37
+ *
38
+ * This is NOT a blanket swallow (that would mask real schema failures). Two independent gates
39
+ * must BOTH pass before a failure is treated as success:
40
+ * 1. CLASS — the driver's schema layer, which owns the backend's error codes/messages, must
41
+ * classify the error as the already-exists class ({@link SchemaOperations.isAlreadyExistsError}).
42
+ * A driver that does not implement the classifier always rethrows here.
43
+ * 2. INTENDED DEFINITION — a re-read of the live schema (the same metadata-backed detection
44
+ * getTableChanges uses) must confirm every table now exists AND has no remaining changes of
45
+ * the kind we attempted. A concurrent actor applying our EXACT change satisfies this; a
46
+ * genuine conflict (e.g. the column landed with a different type, so a column-type change is
47
+ * still outstanding) does not.
48
+ * If either gate fails, the ORIGINAL error propagates unchanged. Because every actor runs this
49
+ * same reconcile, it closes all three windows: migration-Job-vs-pod, pod-vs-pod, and
50
+ * multi-replica boot.
51
+ */
52
+ private reconcileConcurrentSchemaChange;
17
53
  private validateDynamicReferenceColumns;
18
54
  private shouldAlterTable;
19
55
  private getTableChanges;
@@ -1 +1 @@
1
- {"version":3,"file":"TableManager.d.ts","sourceRoot":"","sources":["../../../src/schema/TableManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAa,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAgB,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAMjC,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC;CAC3C;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAA2F;IAClG,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,cAAc,EAAE,cAAc,CAAC;gBAGpC,QAAQ,EAAE,QAAQ,EAClB,iBAAiB,EAAE,iBAAiB,EACpC,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,CAAC,EAAE,cAAc;IAO3B,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC;IAI7B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3B,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBjD,OAAO,CAAC,+BAA+B;IAwDvC,OAAO,CAAC,gBAAgB;YAgBV,eAAe;YA6Ff,kBAAkB;CA8CjC"}
1
+ {"version":3,"file":"TableManager.d.ts","sourceRoot":"","sources":["../../../src/schema/TableManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAa,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAgB,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAMjC,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC;CAC3C;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAA2F;IAClG,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,cAAc,EAAE,cAAc,CAAC;gBAGpC,QAAQ,EAAE,QAAQ,EAClB,iBAAiB,EAAE,iBAAiB,EACpC,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,CAAC,EAAE,cAAc;IAO3B,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC;IAInC;;;;;;OAMG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA4B3B,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;YAgBnC,mBAAmB;IAajC;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;YACW,+BAA+B;IA6B7C,OAAO,CAAC,+BAA+B;IAwDvC,OAAO,CAAC,gBAAgB;YAgBV,eAAe;YA6Ff,kBAAkB;CA8CjC"}
@@ -60,63 +60,217 @@ var TableManager = /** @class */ (function () {
60
60
  });
61
61
  });
62
62
  };
63
+ /**
64
+ * Reconcile every registered table with the live schema. Absent tables are created as ONE
65
+ * batch (a single schema-update operation on drivers that support it — the prod-boot win),
66
+ * preserving their registration order so foreign keys to other absent tables resolve; existing
67
+ * tables are altered individually after, so an alter that adds a foreign key to a
68
+ * just-created table sees it live.
69
+ */
63
70
  TableManager.prototype.loadTables = function () {
64
71
  return __awaiter(this, void 0, void 0, function () {
65
- var tables, _i, tables_1, table;
66
- return __generator(this, function (_a) {
67
- switch (_a.label) {
72
+ var tables, absentTables, existingTables, _i, tables_1, table, error_1, _a, existingTables_1, table;
73
+ return __generator(this, function (_b) {
74
+ switch (_b.label) {
68
75
  case 0:
69
76
  tables = (0, Table_1.getTables)();
77
+ absentTables = [];
78
+ existingTables = [];
70
79
  _i = 0, tables_1 = tables;
71
- _a.label = 1;
80
+ _b.label = 1;
72
81
  case 1:
73
82
  if (!(_i < tables_1.length)) return [3 /*break*/, 4];
74
83
  table = tables_1[_i];
75
- return [4 /*yield*/, this.loadTable(table)];
84
+ this.validateDynamicReferenceColumns(table);
85
+ return [4 /*yield*/, this.tableExists(table)];
76
86
  case 2:
77
- _a.sent();
78
- _a.label = 3;
87
+ if (_b.sent()) {
88
+ existingTables.push(table);
89
+ }
90
+ else {
91
+ absentTables.push(table);
92
+ }
93
+ _b.label = 3;
79
94
  case 3:
80
95
  _i++;
81
96
  return [3 /*break*/, 1];
82
- case 4: return [2 /*return*/];
97
+ case 4:
98
+ if (!(absentTables.length > 0)) return [3 /*break*/, 10];
99
+ this.logger.info({ message: "Creating tables: ".concat(absentTables.map(function (table) { return table.name; }).join(', ')) });
100
+ _b.label = 5;
101
+ case 5:
102
+ _b.trys.push([5, 7, , 9]);
103
+ return [4 /*yield*/, this.schemaOperations.createTables(absentTables)];
104
+ case 6:
105
+ _b.sent();
106
+ return [3 /*break*/, 9];
107
+ case 7:
108
+ error_1 = _b.sent();
109
+ return [4 /*yield*/, this.reconcileConcurrentSchemaChange(absentTables, error_1)];
110
+ case 8:
111
+ _b.sent();
112
+ return [3 /*break*/, 9];
113
+ case 9:
114
+ this.logger.info({ message: "Finished creating ".concat(absentTables.length, " tables") });
115
+ _b.label = 10;
116
+ case 10:
117
+ _a = 0, existingTables_1 = existingTables;
118
+ _b.label = 11;
119
+ case 11:
120
+ if (!(_a < existingTables_1.length)) return [3 /*break*/, 14];
121
+ table = existingTables_1[_a];
122
+ return [4 /*yield*/, this.alterTableIfChanged(table)];
123
+ case 12:
124
+ _b.sent();
125
+ _b.label = 13;
126
+ case 13:
127
+ _a++;
128
+ return [3 /*break*/, 11];
129
+ case 14: return [2 /*return*/];
83
130
  }
84
131
  });
85
132
  });
86
133
  };
87
134
  TableManager.prototype.loadTable = function (table) {
88
135
  return __awaiter(this, void 0, void 0, function () {
89
- var tableChanges;
136
+ var error_2;
90
137
  return __generator(this, function (_a) {
91
138
  switch (_a.label) {
92
139
  case 0:
93
140
  this.validateDynamicReferenceColumns(table);
94
141
  return [4 /*yield*/, this.tableExists(table)];
95
142
  case 1:
96
- if (!_a.sent()) return [3 /*break*/, 5];
97
- return [4 /*yield*/, this.getTableChanges(table)];
143
+ if (!_a.sent()) return [3 /*break*/, 3];
144
+ return [4 /*yield*/, this.alterTableIfChanged(table)];
98
145
  case 2:
146
+ _a.sent();
147
+ return [3 /*break*/, 9];
148
+ case 3:
149
+ this.logger.info({ message: "Creating table: ".concat(table.name) });
150
+ _a.label = 4;
151
+ case 4:
152
+ _a.trys.push([4, 6, , 8]);
153
+ return [4 /*yield*/, this.schemaOperations.createTables([table])];
154
+ case 5:
155
+ _a.sent();
156
+ return [3 /*break*/, 8];
157
+ case 6:
158
+ error_2 = _a.sent();
159
+ return [4 /*yield*/, this.reconcileConcurrentSchemaChange([table], error_2)];
160
+ case 7:
161
+ _a.sent();
162
+ return [3 /*break*/, 8];
163
+ case 8:
164
+ this.logger.info({ message: "Finished creating table: ".concat(table.name) });
165
+ _a.label = 9;
166
+ case 9: return [2 /*return*/];
167
+ }
168
+ });
169
+ });
170
+ };
171
+ TableManager.prototype.alterTableIfChanged = function (table) {
172
+ return __awaiter(this, void 0, void 0, function () {
173
+ var tableChanges, error_3;
174
+ return __generator(this, function (_a) {
175
+ switch (_a.label) {
176
+ case 0: return [4 /*yield*/, this.getTableChanges(table)];
177
+ case 1:
99
178
  tableChanges = _a.sent();
100
- if (!this.shouldAlterTable(tableChanges)) return [3 /*break*/, 4];
179
+ if (!this.shouldAlterTable(tableChanges)) return [3 /*break*/, 7];
101
180
  this.logger.info({ message: "Altering table: ".concat(table.name) });
181
+ _a.label = 2;
182
+ case 2:
183
+ _a.trys.push([2, 4, , 6]);
102
184
  return [4 /*yield*/, this.schemaOperations.alterTable(table, tableChanges)];
103
185
  case 3:
104
186
  _a.sent();
105
- this.logger.info({ message: "Finished altering table: ".concat(table.name) });
106
- _a.label = 4;
107
- case 4: return [3 /*break*/, 7];
187
+ return [3 /*break*/, 6];
188
+ case 4:
189
+ error_3 = _a.sent();
190
+ return [4 /*yield*/, this.reconcileConcurrentSchemaChange([table], error_3)];
108
191
  case 5:
109
- this.logger.info({ message: "Creating table: ".concat(table.name) });
110
- return [4 /*yield*/, this.schemaOperations.createTable(table)];
111
- case 6:
112
192
  _a.sent();
113
- this.logger.info({ message: "Finished creating table: ".concat(table.name) });
193
+ return [3 /*break*/, 6];
194
+ case 6:
195
+ this.logger.info({ message: "Finished altering table: ".concat(table.name) });
114
196
  _a.label = 7;
115
197
  case 7: return [2 /*return*/];
116
198
  }
117
199
  });
118
200
  });
119
201
  };
202
+ /**
203
+ * Reconcile a create/alter DDL failure against a concurrent schema change, closing the
204
+ * check-then-act race in loadTable/loadTables.
205
+ *
206
+ * On a schema-changing release the migration Job, booting pods, and multiple replicas all run
207
+ * Db.init -> loadTables at once. Reconcile is check-then-act (read INFORMATION_SCHEMA -> decide
208
+ * create/alter -> apply DDL): two actors can both observe the same column/table as absent and
209
+ * both issue the CREATE/ALTER. The backend serializes DDL so the object lands EXACTLY once, but
210
+ * the loser's operation fails with an already-exists / duplicate-name error. Before this
211
+ * reconcile that error propagated out of Db.init — a booting pod with no unhandledRejection
212
+ * handler exited (CrashLoopBackOff) and the migration Job exited 1 (a spurious migration-gate
213
+ * failure).
214
+ *
215
+ * This is NOT a blanket swallow (that would mask real schema failures). Two independent gates
216
+ * must BOTH pass before a failure is treated as success:
217
+ * 1. CLASS — the driver's schema layer, which owns the backend's error codes/messages, must
218
+ * classify the error as the already-exists class ({@link SchemaOperations.isAlreadyExistsError}).
219
+ * A driver that does not implement the classifier always rethrows here.
220
+ * 2. INTENDED DEFINITION — a re-read of the live schema (the same metadata-backed detection
221
+ * getTableChanges uses) must confirm every table now exists AND has no remaining changes of
222
+ * the kind we attempted. A concurrent actor applying our EXACT change satisfies this; a
223
+ * genuine conflict (e.g. the column landed with a different type, so a column-type change is
224
+ * still outstanding) does not.
225
+ * If either gate fails, the ORIGINAL error propagates unchanged. Because every actor runs this
226
+ * same reconcile, it closes all three windows: migration-Job-vs-pod, pod-vs-pod, and
227
+ * multi-replica boot.
228
+ */
229
+ TableManager.prototype.reconcileConcurrentSchemaChange = function (tables, error) {
230
+ var _a, _b;
231
+ return __awaiter(this, void 0, void 0, function () {
232
+ var _i, tables_2, table, remainingChanges;
233
+ return __generator(this, function (_c) {
234
+ switch (_c.label) {
235
+ case 0:
236
+ if (!((_b = (_a = this.schemaOperations).isAlreadyExistsError) === null || _b === void 0 ? void 0 : _b.call(_a, error))) {
237
+ throw error;
238
+ }
239
+ _i = 0, tables_2 = tables;
240
+ _c.label = 1;
241
+ case 1:
242
+ if (!(_i < tables_2.length)) return [3 /*break*/, 5];
243
+ table = tables_2[_i];
244
+ return [4 /*yield*/, this.tableExists(table)];
245
+ case 2:
246
+ // A create that failed already-exists yet leaves the table absent is not the
247
+ // concurrent-winner case — surface the original error rather than masking it.
248
+ if (!(_c.sent())) {
249
+ throw error;
250
+ }
251
+ return [4 /*yield*/, this.getTableChanges(table)];
252
+ case 3:
253
+ remainingChanges = _c.sent();
254
+ if (this.shouldAlterTable(remainingChanges)) {
255
+ // The object exists but the live schema still differs from the intended definition, so a
256
+ // concurrent actor did NOT apply our exact change (a genuine conflict). Propagate.
257
+ throw error;
258
+ }
259
+ _c.label = 4;
260
+ case 4:
261
+ _i++;
262
+ return [3 /*break*/, 1];
263
+ case 5:
264
+ this.logger.info({
265
+ message: "Concurrent schema change reconciled for table(s): ".concat(tables
266
+ .map(function (table) { return table.name; })
267
+ .join(', '), " \u2014 live schema verified to match the intended definition; treating the duplicate DDL error as success"),
268
+ });
269
+ return [2 /*return*/];
270
+ }
271
+ });
272
+ });
273
+ };
120
274
  TableManager.prototype.validateDynamicReferenceColumns = function (table) {
121
275
  var isDynamicRefColumn = function (column) {
122
276
  return typeof column.dynamicRefTableColName === 'string';
@@ -1 +1 @@
1
- {"version":3,"file":"TableManager.js","sourceRoot":"","sources":["../../../src/schema/TableManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TableManager.js","sourceRoot":"","sources":["../../../src/schema/TableManager.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@proteinjs/db",
3
- "version": "1.31.0",
3
+ "version": "1.32.1",
4
4
  "main": "./dist/generated/index.js",
5
5
  "types": "./dist/generated/index.d.ts",
6
6
  "exports": {
@@ -66,5 +66,5 @@
66
66
  "ts-jest": "29.1.1",
67
67
  "typescript": "5.2.2"
68
68
  },
69
- "gitHead": "d84e548336f96b2541c1fbbe6a9ad6074df610c7"
69
+ "gitHead": "7f04d27c37019cc01b55a8e2d6bd4a178936dbdf"
70
70
  }
package/src/Db.ts CHANGED
@@ -59,6 +59,14 @@ export interface DefaultDbDriverFactory extends Loadable {
59
59
  export interface DbDriver {
60
60
  getDbName(): string;
61
61
  createDbIfNotExists(): Promise<void>;
62
+ /**
63
+ * Create the named database. When `ddl` is provided the statements are applied as part of
64
+ * creation (on Spanner: `CreateDatabase.extra_statements` — one operation, atomic with the
65
+ * create), so the database is born with its full schema. Fails if the database already exists.
66
+ */
67
+ createDb(name: string, options?: { ddl?: string[] }): Promise<void>;
68
+ /** Drop the named database. */
69
+ dropDb(name: string): Promise<void>;
62
70
  start?(): Promise<void>;
63
71
  stop?(): Promise<void>;
64
72
  getTableManager(): TableManager;
@@ -1,8 +1,29 @@
1
1
  import { Table } from '../Table';
2
2
 
3
3
  export interface SchemaOperations {
4
- createTable(table: Table<any>): Promise<void>;
4
+ /**
5
+ * Create every table in `tables`, in the given order. The order is load-bearing: a table whose
6
+ * foreign keys reference another absent table must appear after it. Drivers that support batched
7
+ * DDL (Spanner) apply the whole set as ONE schema-update operation — statements inside a batch
8
+ * apply in order, so the ordering contract is preserved.
9
+ */
10
+ createTables(tables: Table<any>[]): Promise<void>;
5
11
  alterTable(table: Table<any>, changes: TableChanges): Promise<void>;
12
+
13
+ /**
14
+ * Classify a create/alter DDL error as the backend's "already exists" class — the loser's
15
+ * outcome when two actors concurrently create the same table/index or add the same column and
16
+ * the backend serializes the DDL so the object lands exactly once. Backend-specific (each driver
17
+ * owns its error codes/messages), so it is optional: a driver that does not implement it opts out
18
+ * of {@link TableManager}'s concurrent-reconcile tolerance and keeps the strict rethrow.
19
+ *
20
+ * MUST match on error CLASS (status code + a specific message class), never a loose substring —
21
+ * it decides whether a failure is eligible for verify-then-succeed, and a genuine failure that
22
+ * slipped into this class would be masked. The tolerance is still safe because TableManager
23
+ * re-reads and confirms the intended definition before treating it as success; this predicate is
24
+ * the first gate, not the whole guard.
25
+ */
26
+ isAlreadyExistsError?(error: unknown): boolean;
6
27
  }
7
28
 
8
29
  interface Index {
@@ -33,10 +33,38 @@ export class TableManager {
33
33
  return await this.schemaMetadata.tableExists(table);
34
34
  }
35
35
 
36
+ /**
37
+ * Reconcile every registered table with the live schema. Absent tables are created as ONE
38
+ * batch (a single schema-update operation on drivers that support it — the prod-boot win),
39
+ * preserving their registration order so foreign keys to other absent tables resolve; existing
40
+ * tables are altered individually after, so an alter that adds a foreign key to a
41
+ * just-created table sees it live.
42
+ */
36
43
  async loadTables(): Promise<void> {
37
44
  const tables = getTables();
45
+ const absentTables: Table<any>[] = [];
46
+ const existingTables: Table<any>[] = [];
38
47
  for (const table of tables) {
39
- await this.loadTable(table);
48
+ this.validateDynamicReferenceColumns(table);
49
+ if (await this.tableExists(table)) {
50
+ existingTables.push(table);
51
+ } else {
52
+ absentTables.push(table);
53
+ }
54
+ }
55
+
56
+ if (absentTables.length > 0) {
57
+ this.logger.info({ message: `Creating tables: ${absentTables.map((table) => table.name).join(', ')}` });
58
+ try {
59
+ await this.schemaOperations.createTables(absentTables);
60
+ } catch (error) {
61
+ await this.reconcileConcurrentSchemaChange(absentTables, error);
62
+ }
63
+ this.logger.info({ message: `Finished creating ${absentTables.length} tables` });
64
+ }
65
+
66
+ for (const table of existingTables) {
67
+ await this.alterTableIfChanged(table);
40
68
  }
41
69
  }
42
70
 
@@ -44,19 +72,87 @@ export class TableManager {
44
72
  this.validateDynamicReferenceColumns(table);
45
73
 
46
74
  if (await this.tableExists(table)) {
47
- const tableChanges = await this.getTableChanges(table);
48
- if (this.shouldAlterTable(tableChanges)) {
49
- this.logger.info({ message: `Altering table: ${table.name}` });
50
- await this.schemaOperations.alterTable(table, tableChanges);
51
- this.logger.info({ message: `Finished altering table: ${table.name}` });
52
- }
75
+ await this.alterTableIfChanged(table);
53
76
  } else {
54
77
  this.logger.info({ message: `Creating table: ${table.name}` });
55
- await this.schemaOperations.createTable(table);
78
+ try {
79
+ await this.schemaOperations.createTables([table]);
80
+ } catch (error) {
81
+ await this.reconcileConcurrentSchemaChange([table], error);
82
+ }
56
83
  this.logger.info({ message: `Finished creating table: ${table.name}` });
57
84
  }
58
85
  }
59
86
 
87
+ private async alterTableIfChanged(table: Table<any>): Promise<void> {
88
+ const tableChanges = await this.getTableChanges(table);
89
+ if (this.shouldAlterTable(tableChanges)) {
90
+ this.logger.info({ message: `Altering table: ${table.name}` });
91
+ try {
92
+ await this.schemaOperations.alterTable(table, tableChanges);
93
+ } catch (error) {
94
+ await this.reconcileConcurrentSchemaChange([table], error);
95
+ }
96
+ this.logger.info({ message: `Finished altering table: ${table.name}` });
97
+ }
98
+ }
99
+
100
+ /**
101
+ * Reconcile a create/alter DDL failure against a concurrent schema change, closing the
102
+ * check-then-act race in loadTable/loadTables.
103
+ *
104
+ * On a schema-changing release the migration Job, booting pods, and multiple replicas all run
105
+ * Db.init -> loadTables at once. Reconcile is check-then-act (read INFORMATION_SCHEMA -> decide
106
+ * create/alter -> apply DDL): two actors can both observe the same column/table as absent and
107
+ * both issue the CREATE/ALTER. The backend serializes DDL so the object lands EXACTLY once, but
108
+ * the loser's operation fails with an already-exists / duplicate-name error. Before this
109
+ * reconcile that error propagated out of Db.init — a booting pod with no unhandledRejection
110
+ * handler exited (CrashLoopBackOff) and the migration Job exited 1 (a spurious migration-gate
111
+ * failure).
112
+ *
113
+ * This is NOT a blanket swallow (that would mask real schema failures). Two independent gates
114
+ * must BOTH pass before a failure is treated as success:
115
+ * 1. CLASS — the driver's schema layer, which owns the backend's error codes/messages, must
116
+ * classify the error as the already-exists class ({@link SchemaOperations.isAlreadyExistsError}).
117
+ * A driver that does not implement the classifier always rethrows here.
118
+ * 2. INTENDED DEFINITION — a re-read of the live schema (the same metadata-backed detection
119
+ * getTableChanges uses) must confirm every table now exists AND has no remaining changes of
120
+ * the kind we attempted. A concurrent actor applying our EXACT change satisfies this; a
121
+ * genuine conflict (e.g. the column landed with a different type, so a column-type change is
122
+ * still outstanding) does not.
123
+ * If either gate fails, the ORIGINAL error propagates unchanged. Because every actor runs this
124
+ * same reconcile, it closes all three windows: migration-Job-vs-pod, pod-vs-pod, and
125
+ * multi-replica boot.
126
+ */
127
+ private async reconcileConcurrentSchemaChange(tables: Table<any>[], error: unknown): Promise<void> {
128
+ if (!this.schemaOperations.isAlreadyExistsError?.(error)) {
129
+ throw error;
130
+ }
131
+
132
+ for (const table of tables) {
133
+ // A create that failed already-exists yet leaves the table absent is not the
134
+ // concurrent-winner case — surface the original error rather than masking it.
135
+ if (!(await this.tableExists(table))) {
136
+ throw error;
137
+ }
138
+
139
+ const remainingChanges = await this.getTableChanges(table);
140
+ if (this.shouldAlterTable(remainingChanges)) {
141
+ // The object exists but the live schema still differs from the intended definition, so a
142
+ // concurrent actor did NOT apply our exact change (a genuine conflict). Propagate.
143
+ throw error;
144
+ }
145
+ }
146
+
147
+ this.logger.info({
148
+ message: `Concurrent schema change reconciled for table(s): ${tables
149
+ .map((table) => table.name)
150
+ .join(
151
+ ', '
152
+ )} — live schema verified to match the intended definition; treating the duplicate DDL error as success`,
153
+ });
154
+ }
155
+
60
156
  private validateDynamicReferenceColumns(table: Table<any>): void {
61
157
  const isDynamicRefColumn = (column: any): column is DynamicReferenceColumn<any> =>
62
158
  typeof column.dynamicRefTableColName === 'string';