@event-nest/postgresql 3.3.0 → 3.3.2
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/package.json +3 -3
- package/src/lib/event-nest-postgresql.module.js.map +1 -1
- package/src/lib/module-providers.js +22 -22
- package/src/lib/module-providers.js.map +1 -1
- package/src/lib/postgresql-module-options.d.ts +6 -6
- package/src/lib/storage/postgresql-event-store.js +18 -18
- package/src/lib/storage/postgresql-event-store.js.map +1 -1
- package/src/lib/table-initializer.js +16 -5
- package/src/lib/table-initializer.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@event-nest/postgresql",
|
|
3
|
-
"version": "3.3.
|
|
3
|
+
"version": "3.3.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Event sourcing module for NestJS using PostgreSQL. It uses SQL tables and transactions to store events",
|
|
6
6
|
"author": "Nick Tsitlakidis",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"url": "https://github.com/NickTsitlakidis/event-nest.git"
|
|
10
10
|
},
|
|
11
11
|
"engines": {
|
|
12
|
-
"node": ">=
|
|
12
|
+
"node": ">= 18"
|
|
13
13
|
},
|
|
14
14
|
"type": "commonjs",
|
|
15
15
|
"keywords": [
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"class-transformer": "^0.5.1",
|
|
35
35
|
"knex": "^3.1.0",
|
|
36
36
|
"tslib": "^2.3.0",
|
|
37
|
-
"@event-nest/core": "3.3.
|
|
37
|
+
"@event-nest/core": "3.3.2"
|
|
38
38
|
},
|
|
39
39
|
"types": "./src/index.d.ts"
|
|
40
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-nest-postgresql.module.js","sourceRoot":"","sources":["../../../../../libs/postgresql/src/lib/event-nest-postgresql.module.ts"],"names":[],"mappings":";;;;;AAAA,2CAAmE;AACnE,
|
|
1
|
+
{"version":3,"file":"event-nest-postgresql.module.js","sourceRoot":"","sources":["../../../../../libs/postgresql/src/lib/event-nest-postgresql.module.ts"],"names":[],"mappings":";;;;;AAAA,2CAAmE;AACnE,2CAA+E;AAC/E,uCAAgD;AAEhD,yDAAqD;AAI9C,IAAM,yBAAyB,iCAA/B,MAAM,yBAAyB;IAClC,YACqB,aAAiC,EACjC,iBAAmC;QADnC,kBAAa,GAAb,aAAa,CAAoB;QACjC,sBAAiB,GAAjB,iBAAiB,CAAkB;IACrD,CAAC;IAEJ;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,OAAgC;QAC3C,OAAO;YACH,OAAO,EAAE,CAAC,kBAAW,CAAC;YACtB,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,2BAAyB;YACjC,SAAS,EAAE,kCAAe,CAAC,MAAM,CAAC,OAAO,CAAC;SAC7C,CAAC;IACN,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,OAAqC;QACrD,OAAO;YACH,OAAO,EAAE,CAAC,kBAAW,CAAC;YACtB,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,2BAAyB;YACjC,SAAS,EAAE,kCAAe,CAAC,WAAW,CAAC,OAAO,CAAC;SAClD,CAAC;IACN,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,OAAgC;QAC5C,OAAO;YACH,OAAO,EAAE,CAAC,kBAAW,CAAC;YACtB,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,2BAAyB;YACjC,SAAS,EAAE,kCAAe,CAAC,MAAM,CAAC,OAAO,CAAC;SAC7C,CAAC;IACN,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAAC,OAAqC;QACtD,OAAO;YACH,OAAO,EAAE,CAAC,kBAAW,CAAC;YACtB,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,2BAAyB;YACjC,SAAS,EAAE,kCAAe,CAAC,WAAW,CAAC,OAAO,CAAC;SAClD,CAAC;IACN,CAAC;IAED,sBAAsB;QAClB,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACjE,CAAC;CACJ,CAAA;AAjEY,8DAAyB;oCAAzB,yBAAyB;IADrC,IAAA,eAAM,EAAC,EAAE,CAAC;6CAG6B,yBAAkB;QACd,uBAAgB;GAH/C,yBAAyB,CAiErC"}
|
|
@@ -7,26 +7,6 @@ const schema_configuration_1 = require("./schema-configuration");
|
|
|
7
7
|
const postgresql_event_store_1 = require("./storage/postgresql-event-store");
|
|
8
8
|
const table_initializer_1 = require("./table-initializer");
|
|
9
9
|
const KNEX_CONNECTION = Symbol("EVENT_NEST_KNEX_CONNECTION");
|
|
10
|
-
function buildKnexConnection(options) {
|
|
11
|
-
if ((0, core_1.isNil)(options.ssl)) {
|
|
12
|
-
return (0, knex_1.knex)({
|
|
13
|
-
client: "pg",
|
|
14
|
-
connection: {
|
|
15
|
-
connectionString: options.connectionUri
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
return (0, knex_1.knex)({
|
|
20
|
-
client: "pg",
|
|
21
|
-
connection: {
|
|
22
|
-
connectionString: options.connectionUri,
|
|
23
|
-
ssl: {
|
|
24
|
-
ca: options.ssl.certificate,
|
|
25
|
-
rejectUnauthorized: options.ssl.rejectUnauthorized
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
10
|
class ModuleProviders {
|
|
31
11
|
static create(options) {
|
|
32
12
|
return [
|
|
@@ -60,8 +40,8 @@ class ModuleProviders {
|
|
|
60
40
|
const optionsProvider = {
|
|
61
41
|
inject: options.inject,
|
|
62
42
|
provide: "EVENT_NEST_PG_OPTIONS",
|
|
63
|
-
useFactory: async (...
|
|
64
|
-
return await options.useFactory(...
|
|
43
|
+
useFactory: async (...parameters) => {
|
|
44
|
+
return await options.useFactory(...parameters);
|
|
65
45
|
}
|
|
66
46
|
};
|
|
67
47
|
const emitterProvider = {
|
|
@@ -96,4 +76,24 @@ class ModuleProviders {
|
|
|
96
76
|
}
|
|
97
77
|
}
|
|
98
78
|
exports.ModuleProviders = ModuleProviders;
|
|
79
|
+
function buildKnexConnection(options) {
|
|
80
|
+
if ((0, core_1.isNil)(options.ssl)) {
|
|
81
|
+
return (0, knex_1.knex)({
|
|
82
|
+
client: "pg",
|
|
83
|
+
connection: {
|
|
84
|
+
connectionString: options.connectionUri
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
return (0, knex_1.knex)({
|
|
89
|
+
client: "pg",
|
|
90
|
+
connection: {
|
|
91
|
+
connectionString: options.connectionUri,
|
|
92
|
+
ssl: {
|
|
93
|
+
ca: options.ssl.certificate,
|
|
94
|
+
rejectUnauthorized: options.ssl.rejectUnauthorized
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
99
|
//# sourceMappingURL=module-providers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-providers.js","sourceRoot":"","sources":["../../../../../libs/postgresql/src/lib/module-providers.ts"],"names":[],"mappings":";;;AAAA,2CAA0E;AAE1E,+BAA4B;AAG5B,iEAA6D;AAC7D,6EAAwE;AACxE,2DAAuD;AAEvD,MAAM,eAAe,GAAG,MAAM,CAAC,4BAA4B,CAAC,CAAC;AAE7D,
|
|
1
|
+
{"version":3,"file":"module-providers.js","sourceRoot":"","sources":["../../../../../libs/postgresql/src/lib/module-providers.ts"],"names":[],"mappings":";;;AAAA,2CAA0E;AAE1E,+BAA4B;AAG5B,iEAA6D;AAC7D,6EAAwE;AACxE,2DAAuD;AAEvD,MAAM,eAAe,GAAG,MAAM,CAAC,4BAA4B,CAAC,CAAC;AAE7D,MAAa,eAAe;IACxB,MAAM,CAAC,MAAM,CAAC,OAAgC;QAC1C,OAAO;YACH;gBACI,OAAO,EAAE,yBAAkB;gBAC3B,UAAU,EAAE,GAAG,EAAE;oBACb,OAAO,IAAI,yBAAkB,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;gBACnE,CAAC;aACJ;YACD;gBACI,OAAO,EAAE,eAAe;gBACxB,QAAQ,EAAE,mBAAmB,CAAC,OAAO,CAAC;aACzC;YACD;gBACI,MAAM,EAAE,CAAC,yBAAkB,EAAE,eAAe,CAAC;gBAC7C,OAAO,EAAE,kBAAW;gBACpB,UAAU,EAAE,CAAC,YAAgC,EAAE,cAAyB,EAAE,EAAE;oBACxE,OAAO,IAAI,6CAAoB,CAC3B,YAAY,EACZ,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,mBAAmB,EAC3B,OAAO,CAAC,eAAe,EACvB,cAAc,CACjB,CAAC;gBACN,CAAC;aACJ;YACD;gBACI,MAAM,EAAE,CAAC,eAAe,CAAC;gBACzB,OAAO,EAAE,oCAAgB;gBACzB,UAAU,EAAE,CAAC,cAAyB,EAAE,EAAE;oBACtC,OAAO,IAAI,oCAAgB,CACvB,IAAI,0CAAmB,CACnB,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,mBAAmB,EAC3B,OAAO,CAAC,eAAe,CAC1B,EACD,IAAA,YAAK,EAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,EACpE,cAAc,CACjB,CAAC;gBACN,CAAC;aACJ;SACJ,CAAC;IACN,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,OAAqC;QACpD,MAAM,eAAe,GAAG;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,uBAAuB;YAChC,UAAU,EAAE,KAAK,EAAE,GAAG,UAAqB,EAAE,EAAE;gBAC3C,OAAO,MAAM,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,CAAC;YACnD,CAAC;SACJ,CAAC;QAEF,MAAM,eAAe,GAAG;YACpB,MAAM,EAAE,CAAC,uBAAuB,CAAC;YACjC,OAAO,EAAE,yBAAkB;YAC3B,UAAU,EAAE,CAAC,OAAgC,EAAE,EAAE;gBAC7C,OAAO,IAAI,yBAAkB,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;YACnE,CAAC;SACJ,CAAC;QAEF,MAAM,YAAY,GAAG;YACjB,MAAM,EAAE,CAAC,uBAAuB,CAAC;YACjC,OAAO,EAAE,eAAe;YACxB,UAAU,EAAE,CAAC,OAAgC,EAAa,EAAE;gBACxD,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC;YACxC,CAAC;SACJ,CAAC;QAEF,MAAM,kBAAkB,GAAG;YACvB,MAAM,EAAE,CAAC,uBAAuB,EAAE,yBAAkB,EAAE,eAAe,CAAC;YACtE,OAAO,EAAE,kBAAW;YACpB,UAAU,EAAE,CAAC,OAAgC,EAAE,OAA2B,EAAE,cAAyB,EAAE,EAAE;gBACrG,OAAO,IAAI,6CAAoB,CAC3B,OAAO,EACP,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,mBAAmB,EAC3B,OAAO,CAAC,eAAe,EACvB,cAAc,CACjB,CAAC;YACN,CAAC;SACJ,CAAC;QAEF,MAAM,wBAAwB,GAAG;YAC7B,MAAM,EAAE,CAAC,eAAe,EAAE,uBAAuB,CAAC;YAClD,OAAO,EAAE,oCAAgB;YACzB,UAAU,EAAE,CAAC,cAAyB,EAAE,OAAgC,EAAE,EAAE;gBACxE,OAAO,IAAI,oCAAgB,CACvB,IAAI,0CAAmB,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,eAAe,CAAC,EACjG,IAAA,YAAK,EAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,EACpE,cAAc,CACjB,CAAC;YACN,CAAC;SACJ,CAAC;QAEF,OAAO,CAAC,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,wBAAwB,CAAC,CAAC;IAC1G,CAAC;CACJ;AAjGD,0CAiGC;AACD,SAAS,mBAAmB,CAAC,OAAgC;IACzD,IAAI,IAAA,YAAK,EAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,IAAA,WAAI,EAAC;YACR,MAAM,EAAE,IAAI;YACZ,UAAU,EAAE;gBACR,gBAAgB,EAAE,OAAO,CAAC,aAAa;aAC1C;SACJ,CAAC,CAAC;IACP,CAAC;IAED,OAAO,IAAA,WAAI,EAAC;QACR,MAAM,EAAE,IAAI;QACZ,UAAU,EAAE;YACR,gBAAgB,EAAE,OAAO,CAAC,aAAa;YACvC,GAAG,EAAE;gBACD,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW;gBAC3B,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;aACrD;SACJ;KACJ,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CoreModuleOptions } from "@event-nest/core";
|
|
2
|
-
export interface
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
export interface PostgreSQLModuleAsyncOptions {
|
|
3
|
+
inject?: any[];
|
|
4
|
+
useFactory: (...parameters: any[]) => PostgreSQLModuleOptions | Promise<PostgreSQLModuleOptions>;
|
|
5
5
|
}
|
|
6
6
|
export interface PostgreSQLModuleOptions extends CoreModuleOptions {
|
|
7
7
|
/**
|
|
@@ -32,7 +32,7 @@ export interface PostgreSQLModuleOptions extends CoreModuleOptions {
|
|
|
32
32
|
*/
|
|
33
33
|
ssl?: SslOptions;
|
|
34
34
|
}
|
|
35
|
-
export interface
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
export interface SslOptions {
|
|
36
|
+
certificate?: string;
|
|
37
|
+
rejectUnauthorized: boolean;
|
|
38
38
|
}
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.PostgreSQLEventStore = void 0;
|
|
4
4
|
const core_1 = require("@event-nest/core");
|
|
5
5
|
const common_1 = require("@nestjs/common");
|
|
6
|
-
const
|
|
6
|
+
const node_crypto_1 = require("node:crypto");
|
|
7
7
|
const schema_configuration_1 = require("../schema-configuration");
|
|
8
8
|
class PostgreSQLEventStore extends core_1.AbstractEventStore {
|
|
9
9
|
constructor(eventEmitter, schemaName, aggregatesTableName, eventsTableName, _knexConnection) {
|
|
@@ -78,16 +78,16 @@ class PostgreSQLEventStore extends core_1.AbstractEventStore {
|
|
|
78
78
|
aggregate_root_name: aggregateRootName
|
|
79
79
|
});
|
|
80
80
|
const grouped = {};
|
|
81
|
-
|
|
81
|
+
for (const row of rows) {
|
|
82
82
|
if ((0, core_1.isNil)(grouped[row.aggregate_root_id])) {
|
|
83
83
|
grouped[row.aggregate_root_id] = [];
|
|
84
84
|
}
|
|
85
85
|
grouped[row.aggregate_root_id].push(core_1.StoredEvent.fromStorage(row.id, row.aggregate_root_id, row.event_name, row.created_at, row.aggregate_root_version, row.aggregate_root_name, row.payload));
|
|
86
|
-
}
|
|
86
|
+
}
|
|
87
87
|
return grouped;
|
|
88
88
|
}
|
|
89
89
|
generateEntityId() {
|
|
90
|
-
return Promise.resolve((0,
|
|
90
|
+
return Promise.resolve((0, node_crypto_1.randomUUID)());
|
|
91
91
|
}
|
|
92
92
|
async save(events, aggregate) {
|
|
93
93
|
const startedAt = Date.now();
|
|
@@ -98,14 +98,14 @@ class PostgreSQLEventStore extends core_1.AbstractEventStore {
|
|
|
98
98
|
let finalAggregate;
|
|
99
99
|
try {
|
|
100
100
|
await this._knexConnection.transaction(async (trx) => {
|
|
101
|
-
const
|
|
101
|
+
const aggregateInDatabase = await trx(this._schemaConfiguration.schemaAwareAggregatesTable)
|
|
102
102
|
.select("*")
|
|
103
103
|
.forUpdate()
|
|
104
104
|
.where("id", aggregate.id)
|
|
105
105
|
.first();
|
|
106
|
-
let foundAggregate = (0, core_1.isNil)(
|
|
106
|
+
let foundAggregate = (0, core_1.isNil)(aggregateInDatabase)
|
|
107
107
|
? undefined
|
|
108
|
-
: new core_1.StoredAggregateRoot(
|
|
108
|
+
: new core_1.StoredAggregateRoot(aggregateInDatabase.id, aggregateInDatabase.version);
|
|
109
109
|
if ((0, core_1.isNil)(foundAggregate)) {
|
|
110
110
|
aggregate.version = 0;
|
|
111
111
|
this._logger.debug(`Aggregate ${aggregate.id} does not exist. Will save it`);
|
|
@@ -119,22 +119,22 @@ class PostgreSQLEventStore extends core_1.AbstractEventStore {
|
|
|
119
119
|
this._logger.error(`Version conflict detected for aggregate ${aggregate.id}. Expected ${aggregate.version}. Stored ${foundAggregate.version}`);
|
|
120
120
|
throw new core_1.EventConcurrencyException(aggregate.id, foundAggregate.version, aggregate.version);
|
|
121
121
|
}
|
|
122
|
-
for (
|
|
123
|
-
incrementedVersion = aggregate.version +
|
|
124
|
-
|
|
122
|
+
for (const [index, storedEvent] of events.entries()) {
|
|
123
|
+
incrementedVersion = aggregate.version + index + 1;
|
|
124
|
+
storedEvent.aggregateRootVersion = incrementedVersion;
|
|
125
125
|
}
|
|
126
126
|
aggregate.version = incrementedVersion;
|
|
127
127
|
finalAggregate = aggregate;
|
|
128
128
|
this._logger.debug(`Saving ${events.length} events for aggregate ${aggregate.id}`);
|
|
129
|
-
const mapped = events.map((
|
|
129
|
+
const mapped = events.map((storedEvent) => {
|
|
130
130
|
return {
|
|
131
|
-
aggregate_root_id:
|
|
132
|
-
aggregate_root_name:
|
|
133
|
-
aggregate_root_version:
|
|
134
|
-
created_at:
|
|
135
|
-
event_name:
|
|
136
|
-
id:
|
|
137
|
-
payload: JSON.stringify(
|
|
131
|
+
aggregate_root_id: storedEvent.aggregateRootId,
|
|
132
|
+
aggregate_root_name: storedEvent.aggregateRootName,
|
|
133
|
+
aggregate_root_version: storedEvent.aggregateRootVersion,
|
|
134
|
+
created_at: storedEvent.createdAt,
|
|
135
|
+
event_name: storedEvent.eventName,
|
|
136
|
+
id: storedEvent.id,
|
|
137
|
+
payload: JSON.stringify(storedEvent.payload)
|
|
138
138
|
};
|
|
139
139
|
});
|
|
140
140
|
await trx(this._schemaConfiguration.schemaAwareEventsTable).insert(mapped);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgresql-event-store.js","sourceRoot":"","sources":["../../../../../../libs/postgresql/src/lib/storage/postgresql-event-store.ts"],"names":[],"mappings":";;;AAAA,2CAW0B;AAC1B,2CAAwC;
|
|
1
|
+
{"version":3,"file":"postgresql-event-store.js","sourceRoot":"","sources":["../../../../../../libs/postgresql/src/lib/storage/postgresql-event-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,14 +26,20 @@ let TableInitializer = TableInitializer_1 = class TableInitializer {
|
|
|
26
26
|
}
|
|
27
27
|
try {
|
|
28
28
|
const [hasAggregatesTable, hasEventsTable] = await Promise.all([
|
|
29
|
-
this._knexConnection.schema
|
|
30
|
-
|
|
29
|
+
this._knexConnection.schema
|
|
30
|
+
.withSchema(this._schemaConfiguration.schema)
|
|
31
|
+
.hasTable(this._schemaConfiguration.aggregatesTable),
|
|
32
|
+
this._knexConnection.schema
|
|
33
|
+
.withSchema(this._schemaConfiguration.schema)
|
|
34
|
+
.hasTable(this._schemaConfiguration.eventsTable)
|
|
31
35
|
]);
|
|
32
36
|
if (hasAggregatesTable) {
|
|
33
37
|
this._logger.log("Skipping aggregates table initialization. Table already exists");
|
|
34
38
|
}
|
|
35
39
|
else {
|
|
36
|
-
await this._knexConnection.schema
|
|
40
|
+
await this._knexConnection.schema
|
|
41
|
+
.withSchema(this._schemaConfiguration.schema)
|
|
42
|
+
.createTable(this._schemaConfiguration.aggregatesTable, (table) => {
|
|
37
43
|
table.uuid("id").primary();
|
|
38
44
|
table.integer("version").notNullable();
|
|
39
45
|
});
|
|
@@ -43,7 +49,9 @@ let TableInitializer = TableInitializer_1 = class TableInitializer {
|
|
|
43
49
|
this._logger.log("Skipping events table initialization. Table already exists");
|
|
44
50
|
}
|
|
45
51
|
else {
|
|
46
|
-
await this._knexConnection.schema
|
|
52
|
+
await this._knexConnection.schema
|
|
53
|
+
.withSchema(this._schemaConfiguration.schema)
|
|
54
|
+
.createTable(this._schemaConfiguration.eventsTable, (table) => {
|
|
47
55
|
table.uuid("id").primary();
|
|
48
56
|
table.uuid("aggregate_root_id").notNullable();
|
|
49
57
|
table.integer("aggregate_root_version").notNullable();
|
|
@@ -51,7 +59,10 @@ let TableInitializer = TableInitializer_1 = class TableInitializer {
|
|
|
51
59
|
table.text("event_name").notNullable();
|
|
52
60
|
table.jsonb("payload").notNullable();
|
|
53
61
|
table.timestamp("created_at", { useTz: true }).notNullable();
|
|
54
|
-
table
|
|
62
|
+
table
|
|
63
|
+
.foreign("aggregate_root_id")
|
|
64
|
+
.references(`id`)
|
|
65
|
+
.inTable(this._schemaConfiguration.schemaAwareAggregatesTable);
|
|
55
66
|
});
|
|
56
67
|
this._logger.log("Events table created successfully");
|
|
57
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-initializer.js","sourceRoot":"","sources":["../../../../../libs/postgresql/src/lib/table-initializer.ts"],"names":[],"mappings":";;;;;AAAA,2CAA4E;AAC5E,+BAA4B;AAE5B,iEAA6D;AAGtD,IAAM,gBAAgB,wBAAtB,MAAM,gBAAgB;IAEzB,YACqB,oBAAyC,EACzC,kBAA2B,EAC3B,eAA0B;QAF1B,yBAAoB,GAApB,oBAAoB,CAAqB;QACzC,uBAAkB,GAAlB,kBAAkB,CAAS;QAC3B,oBAAe,GAAf,eAAe,CAAW;QAJ9B,YAAO,GAAG,IAAI,eAAM,CAAC,kBAAgB,CAAC,IAAI,CAAC,CAAC;IAK1D,CAAC;IAEJ,IAAI,iBAAiB;QACjB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACnC,CAAC;IAED,IAAI,mBAAmB;QACnB,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,sBAAsB;QACxB,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC3B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,6EAA6E,CAAC,CAAC;YAClG,OAAO;QACX,CAAC;QAED,IAAI,CAAC;YACD,MAAM,CAAC,kBAAkB,EAAE,cAAc,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC3D,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"table-initializer.js","sourceRoot":"","sources":["../../../../../libs/postgresql/src/lib/table-initializer.ts"],"names":[],"mappings":"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"}
|