@dbos-inc/prisma-datasource 4.4.4-preview → 4.4.5-preview

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/dist/index.d.ts CHANGED
@@ -16,9 +16,9 @@ export declare class PrismaDataSource<PrismaClient> implements DBOSDataSource<Tr
16
16
  #private;
17
17
  readonly name: string;
18
18
  get client(): PrismaClient;
19
- static initializeDBOSSchema(prisma: PrismaLike): Promise<void>;
20
- static uninitializeDBOSSchema(prisma: PrismaLike): Promise<void>;
21
- constructor(name: string, prismaAccess: PrismaLike | (() => PrismaLike));
19
+ static initializeDBOSSchema(prisma: PrismaLike, schemaName?: string): Promise<void>;
20
+ static uninitializeDBOSSchema(prisma: PrismaLike, schemaName?: string): Promise<void>;
21
+ constructor(name: string, prismaAccess: PrismaLike | (() => PrismaLike), schemaName?: string);
22
22
  runTransaction<T>(func: () => Promise<T>, config?: TransactionConfig): Promise<T>;
23
23
  registerTransaction<This, Args extends unknown[], Return>(func: (this: This, ...args: Args) => Promise<Return>, config?: TransactionConfig & FunctionName): (this: This, ...args: Args) => Promise<Return>;
24
24
  transaction(config?: TransactionConfig): <This, Args extends unknown[], Return>(target: object, propertyKey: PropertyKey, descriptor: TypedPropertyDescriptor<(this: This, ...args: Args) => Promise<Return>>) => TypedPropertyDescriptor<(this: This, ...args: Args) => Promise<Return>>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAML,cAAc,EAMf,MAAM,+BAA+B,CAAC;AAIvC,KAAK,UAAU,GAAG;IAChB,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,eAAe,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC/E,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1E,CAAC;AAaF,KAAK,yBAAyB,GAAG,iBAAiB,GAAG,eAAe,GAAG,gBAAgB,GAAG,cAAc,CAAC;AAEzG,MAAM,MAAM,iBAAiB,GAAG;IAC9B,cAAc,CAAC,EAAE,yBAAyB,CAAC;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAyLF,qBAAa,gBAAgB,CAAC,YAAY,CAAE,YAAW,cAAc,CAAC,iBAAiB,CAAC;;IA8BpF,QAAQ,CAAC,IAAI,EAAE,MAAM;IAjBvB,IAAI,MAAM,IAAI,YAAY,CAEzB;WAEY,oBAAoB,CAAC,MAAM,EAAE,UAAU;WAKvC,sBAAsB,CAAC,MAAM,EAAE,UAAU;gBAQ3C,IAAI,EAAE,MAAM,EACrB,YAAY,EAAE,UAAU,GAAG,CAAC,MAAM,UAAU,CAAC;IAMzC,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,iBAAiB;IAI1E,mBAAmB,CAAC,IAAI,EAAE,IAAI,SAAS,OAAO,EAAE,EAAE,MAAM,EACtD,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,EACpD,MAAM,CAAC,EAAE,iBAAiB,GAAG,YAAY,GACxC,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC;IAIjD,WAAW,CAAC,MAAM,CAAC,EAAE,iBAAiB,kDAI1B,MAAM,eACD,WAAW,cACZ,wBAAwB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,QAAQ,MAAM,CAAC,CAAC,oCAAxC,IAAI,WAAW,IAAI,KAAK,QAAQ,MAAM,CAAC;CAevF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAML,cAAc,EAMf,MAAM,+BAA+B,CAAC;AAIvC,KAAK,UAAU,GAAG;IAChB,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,eAAe,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC/E,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1E,CAAC;AAaF,KAAK,yBAAyB,GAAG,iBAAiB,GAAG,eAAe,GAAG,gBAAgB,GAAG,cAAc,CAAC;AAEzG,MAAM,MAAM,iBAAiB,GAAG;IAC9B,cAAc,CAAC,EAAE,yBAAyB,CAAC;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAsMF,qBAAa,gBAAgB,CAAC,YAAY,CAAE,YAAW,cAAc,CAAC,iBAAiB,CAAC;;IA8BpF,QAAQ,CAAC,IAAI,EAAE,MAAM;IAjBvB,IAAI,MAAM,IAAI,YAAY,CAEzB;WAEY,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,GAAE,MAAe;WAKpE,sBAAsB,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,GAAE,MAAe;gBAQxE,IAAI,EAAE,MAAM,EACrB,YAAY,EAAE,UAAU,GAAG,CAAC,MAAM,UAAU,CAAC,EAC7C,UAAU,GAAE,MAAe;IAMvB,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,iBAAiB;IAI1E,mBAAmB,CAAC,IAAI,EAAE,IAAI,SAAS,OAAO,EAAE,EAAE,MAAM,EACtD,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,EACpD,MAAM,CAAC,EAAE,iBAAiB,GAAG,YAAY,GACxC,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC;IAIjD,WAAW,CAAC,MAAM,CAAC,EAAE,iBAAiB,kDAI1B,MAAM,eACD,WAAW,cACZ,wBAAwB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,QAAQ,MAAM,CAAC,CAAC,oCAAxC,IAAI,WAAW,IAAI,KAAK,QAAQ,MAAM,CAAC;CAevF"}
package/dist/index.js CHANGED
@@ -10,9 +10,11 @@ class PrismaTransactionHandler {
10
10
  name;
11
11
  prismaAccess;
12
12
  dsType = 'PrismaDataSource';
13
- constructor(name, prismaAccess) {
13
+ schemaName;
14
+ constructor(name, prismaAccess, schemaName = 'dbos') {
14
15
  this.name = name;
15
16
  this.prismaAccess = prismaAccess;
17
+ this.schemaName = schemaName;
16
18
  }
17
19
  get #prismaDB() {
18
20
  if (!this.prismaAccess) {
@@ -30,7 +32,7 @@ class PrismaTransactionHandler {
30
32
  async initialize() {
31
33
  let installed = false;
32
34
  try {
33
- const res = await this.#prismaDB.$queryRawUnsafe(datasource_1.checkSchemaInstallationPG);
35
+ const res = await this.#prismaDB.$queryRawUnsafe((0, datasource_1.checkSchemaInstallationPG)(this.schemaName));
34
36
  installed = !!res[0]?.schema_exists && !!res[0]?.table_exists;
35
37
  }
36
38
  catch (e) {
@@ -39,11 +41,11 @@ class PrismaTransactionHandler {
39
41
  // Install
40
42
  if (!installed) {
41
43
  try {
42
- await this.#prismaDB.$executeRawUnsafe(datasource_1.createTransactionCompletionSchemaPG);
43
- await this.#prismaDB.$executeRawUnsafe(datasource_1.createTransactionCompletionTablePG);
44
+ await this.#prismaDB.$executeRawUnsafe((0, datasource_1.createTransactionCompletionSchemaPG)(this.schemaName));
45
+ await this.#prismaDB.$executeRawUnsafe((0, datasource_1.createTransactionCompletionTablePG)(this.schemaName));
44
46
  }
45
47
  catch (err) {
46
- throw new Error(`In initialization of 'PrismaDataSource' ${this.name}: The 'dbos.transaction_completion' table does not exist, and could not be created. This should be added to your database migrations.
48
+ throw new Error(`In initialization of 'PrismaDataSource' ${this.name}: The '${this.schemaName}.transaction_completion' table does not exist, and could not be created. This should be added to your database migrations.
47
49
  See: https://docs.dbos.dev/typescript/tutorials/transaction-tutorial#installing-the-dbos-schema`);
48
50
  }
49
51
  }
@@ -52,7 +54,7 @@ class PrismaTransactionHandler {
52
54
  return Promise.resolve();
53
55
  }
54
56
  async #checkExecution(client, workflowID, stepID) {
55
- const result = await client.$queryRawUnsafe(`SELECT output, error FROM dbos.transaction_completion
57
+ const result = await client.$queryRawUnsafe(`SELECT output, error FROM "${this.schemaName}".transaction_completion
56
58
  WHERE workflow_id = $1 AND function_num = $2`, workflowID, stepID);
57
59
  if (result?.[0] === undefined) {
58
60
  return undefined;
@@ -62,7 +64,7 @@ class PrismaTransactionHandler {
62
64
  }
63
65
  async #recordError(workflowID, stepID, error) {
64
66
  try {
65
- await this.#prismaDB.$executeRawUnsafe(`INSERT INTO dbos.transaction_completion (workflow_id, function_num, error)
67
+ await this.#prismaDB.$executeRawUnsafe(`INSERT INTO "${this.schemaName}".transaction_completion (workflow_id, function_num, error)
66
68
  VALUES ($1, $2, $3)`, workflowID, stepID, error);
67
69
  }
68
70
  catch (error) {
@@ -74,9 +76,9 @@ class PrismaTransactionHandler {
74
76
  }
75
77
  }
76
78
  }
77
- static async #recordOutput(client, workflowID, stepID, output) {
79
+ static async #recordOutput(client, workflowID, stepID, output, schemaName) {
78
80
  try {
79
- await client.$executeRawUnsafe(`INSERT INTO dbos.transaction_completion (workflow_id, function_num, output)
81
+ await client.$executeRawUnsafe(`INSERT INTO "${schemaName}".transaction_completion (workflow_id, function_num, output)
80
82
  VALUES ($1, $2, $3)`, workflowID, stepID, output);
81
83
  }
82
84
  catch (error) {
@@ -118,7 +120,7 @@ class PrismaTransactionHandler {
118
120
  });
119
121
  // save the output of read/write transactions
120
122
  if (saveResults) {
121
- await PrismaTransactionHandler.#recordOutput(client, workflowID, stepID, superjson_1.SuperJSON.stringify(result));
123
+ await PrismaTransactionHandler.#recordOutput(client, workflowID, stepID, superjson_1.SuperJSON.stringify(result), this.schemaName);
122
124
  }
123
125
  return result;
124
126
  }, { isolationLevel: config?.isolationLevel }));
@@ -159,18 +161,18 @@ class PrismaDataSource {
159
161
  get client() {
160
162
  return PrismaDataSource.#getClient(this.#provider);
161
163
  }
162
- static async initializeDBOSSchema(prisma) {
163
- await prisma.$queryRawUnsafe(datasource_1.createTransactionCompletionSchemaPG);
164
- await prisma.$queryRawUnsafe(datasource_1.createTransactionCompletionTablePG);
164
+ static async initializeDBOSSchema(prisma, schemaName = 'dbos') {
165
+ await prisma.$queryRawUnsafe((0, datasource_1.createTransactionCompletionSchemaPG)(schemaName));
166
+ await prisma.$queryRawUnsafe((0, datasource_1.createTransactionCompletionTablePG)(schemaName));
165
167
  }
166
- static async uninitializeDBOSSchema(prisma) {
167
- await prisma.$executeRawUnsafe('DROP TABLE IF EXISTS dbos.transaction_completion;');
168
- await prisma.$executeRawUnsafe('DROP SCHEMA IF EXISTS dbos CASCADE;');
168
+ static async uninitializeDBOSSchema(prisma, schemaName = 'dbos') {
169
+ await prisma.$executeRawUnsafe(`DROP TABLE IF EXISTS "${schemaName}".transaction_completion;`);
170
+ await prisma.$executeRawUnsafe(`DROP SCHEMA IF EXISTS "${schemaName}" CASCADE;`);
169
171
  }
170
172
  #provider;
171
- constructor(name, prismaAccess) {
173
+ constructor(name, prismaAccess, schemaName = 'dbos') {
172
174
  this.name = name;
173
- this.#provider = new PrismaTransactionHandler(name, prismaAccess);
175
+ this.#provider = new PrismaTransactionHandler(name, prismaAccess, schemaName);
174
176
  (0, datasource_1.registerDataSource)(this.#provider);
175
177
  }
176
178
  async runTransaction(func, config) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAAA,iDAAmF;AACnF,8DAYuC;AACvC,6CAAgD;AAChD,yCAAsC;AA4BtC,MAAM,aAAa,GAAG,IAAI,+BAAiB,EAA2B,CAAC;AAEvE,MAAM,wBAAwB;IAKjB;IACQ;IALV,MAAM,GAAG,kBAAkB,CAAC;IAC5B,UAAU,CAAS;IAE5B,YACW,IAAY,EACJ,YAA6C,EAC9D,aAAqB,MAAM;QAFlB,SAAI,GAAJ,IAAI,CAAQ;QACJ,iBAAY,GAAZ,YAAY,CAAiC;QAG9D,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,IAAI,SAAS;QACX,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,CAAC,IAAI,sBAAsB,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,OAAO,IAAI,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;YAC5C,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YAC9B,IAAI,CAAC,CAAC,EAAE,CAAC;gBACP,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,CAAC,IAAI,sBAAsB,CAAC,CAAC;YACjE,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,eAAe,CAC9C,IAAA,sCAAyB,EAAC,IAAI,CAAC,UAAU,CAAC,CAC3C,CAAC;YACF,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,aAAa,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC;QAChE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CACb,2CAA2C,IAAI,CAAC,IAAI,oCAAqC,CAAW,CAAC,OAAO,EAAE,CAC/G,CAAC;QACJ,CAAC;QAED,UAAU;QACV,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAA,gDAAmC,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC7F,MAAM,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAA,+CAAkC,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YAC9F,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CACb,2CAA2C,IAAI,CAAC,IAAI,UAAU,IAAI,CAAC,UAAU;0GACmB,CACjG,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,MAAkB,EAClB,UAAkB,EAClB,MAAc;QAGd,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,eAAe,CACzC,8BAA8B,IAAI,CAAC,UAAU;mDACA,EAC7C,UAAU,EACV,MAAM,CACP,CAAC;QACF,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACpC,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,MAAc,EAAE,KAAa;QAClE,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,SAAS,CAAC,iBAAiB,CACpC,gBAAgB,IAAI,CAAC,UAAU;4BACX,EACpB,UAAU,EACV,MAAM,EACN,KAAK,CACN,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,IAAA,iCAAoB,EAAC,KAAK,CAAC,EAAE,CAAC;gBAChC,MAAM,IAAI,oCAAyB,CAAC,UAAU,CAAC,CAAC;YAClD,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,aAAa,CACxB,MAAkB,EAClB,UAAkB,EAClB,MAAc,EACd,MAAqB,EACrB,UAAkB;QAElB,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,iBAAiB,CAC5B,gBAAgB,UAAU;6BACL,EACrB,UAAU,EACV,MAAM,EACN,MAAM,CACP,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,IAAA,iCAAoB,EAAC,KAAK,CAAC,EAAE,CAAC;gBAChC,MAAM,IAAI,oCAAyB,CAAC,UAAU,CAAC,CAAC;YAClD,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,yBAAyB,CAC7B,MAAqC,EACrC,MAAY,EACZ,IAAoD,EACpD,GAAG,IAAU;QAEb,MAAM,UAAU,GAAG,eAAI,CAAC,UAAU,CAAC;QACnC,MAAM,MAAM,GAAG,eAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,UAAU,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACrD,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,EAAE,QAAQ,IAAI,KAAK,CAAC;QAC3C,MAAM,WAAW,GAAG,CAAC,QAAQ,IAAI,UAAU,KAAK,SAAS,CAAC;QAE1D,4BAA4B;QAC5B,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,MAAM,aAAa,GAAG,GAAG,CAAC;QAC1B,MAAM,cAAc,GAAG,IAAI,CAAC,CAAC,0BAA0B;QAEvD,OAAO,IAAI,EAAE,CAAC;YACZ,oDAAoD;YACpD,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,MAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACjH,IAAI,cAAc,EAAE,CAAC;gBACnB,eAAI,CAAC,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAExC,IAAI,OAAO,IAAI,cAAc,EAAE,CAAC;oBAC9B,MAAM,qBAAS,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;gBAC9C,CAAC;gBACD,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,qBAAS,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAW,CAAC;YAC3F,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,CAAC,MAAO,IAAI,CAAC,SAAqC,CAAC,YAAY,CAC5E,KAAK,EAAE,MAAM,EAAE,EAAE;oBACf,sCAAsC;oBACtC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,IAAI,EAAE;wBACzE,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAW,CAAC;oBACtD,CAAC,CAAC,CAAC;oBAEH,6CAA6C;oBAC7C,IAAI,WAAW,EAAE,CAAC;wBAChB,MAAM,wBAAwB,CAAC,aAAa,CAC1C,MAAM,EACN,UAAU,EACV,MAAO,EACP,qBAAS,CAAC,SAAS,CAAC,MAAM,CAAC,EAC3B,IAAI,CAAC,UAAU,CAChB,CAAC;oBACJ,CAAC;oBAED,OAAO,MAAM,CAAC;gBAChB,CAAC,EACD,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,CAC3C,CAAW,CAAC;gBAEb,OAAO,MAAM,CAAC;YAChB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,IAAA,0CAA6B,EAAC,KAAK,CAAC,EAAE,CAAC;oBACzC,eAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,2BAA2B,EAAE,EAAE,eAAe,EAAE,WAAW,EAAE,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;oBACtG,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;oBACjE,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,aAAa,EAAE,cAAc,CAAC,CAAC;oBACpE,SAAS;gBACX,CAAC;qBAAM,CAAC;oBACN,IAAI,WAAW,EAAE,CAAC;wBAChB,MAAM,OAAO,GAAG,qBAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;wBAC3C,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,MAAO,EAAE,OAAO,CAAC,CAAC;oBACxD,CAAC;oBAED,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAED,MAAa,gBAAgB;IA8BhB;IA7BX,MAAM,CAAC,UAAU,CAAC,CAA4B;QAC5C,IAAI,CAAC,eAAI,CAAC,eAAe,EAAE,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;QAC3F,CAAC;QACD,MAAM,GAAG,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;QACrC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;QAC3F,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACzG,OAAO,GAAG,CAAC,MAAM,CAAC;IACpB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAiB,CAAC;IACrE,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,MAAkB,EAAE,aAAqB,MAAM;QAC/E,MAAM,MAAM,CAAC,eAAe,CAAC,IAAA,gDAAmC,EAAC,UAAU,CAAC,CAAC,CAAC;QAC9E,MAAM,MAAM,CAAC,eAAe,CAAC,IAAA,+CAAkC,EAAC,UAAU,CAAC,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,MAAkB,EAAE,aAAqB,MAAM;QACjF,MAAM,MAAM,CAAC,iBAAiB,CAAC,yBAAyB,UAAU,2BAA2B,CAAC,CAAC;QAC/F,MAAM,MAAM,CAAC,iBAAiB,CAAC,0BAA0B,UAAU,YAAY,CAAC,CAAC;IACnF,CAAC;IAED,SAAS,CAA2B;IAEpC,YACW,IAAY,EACrB,YAA6C,EAC7C,aAAqB,MAAM;QAFlB,SAAI,GAAJ,IAAI,CAAQ;QAIrB,IAAI,CAAC,SAAS,GAAG,IAAI,wBAAwB,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;QAC9E,IAAA,+BAAkB,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,cAAc,CAAI,IAAsB,EAAE,MAA0B;QACxE,OAAO,MAAM,IAAA,2BAAc,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9F,CAAC;IAED,mBAAmB,CACjB,IAAoD,EACpD,MAAyC;QAEzC,OAAO,IAAA,gCAAmB,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IAED,WAAW,CAAC,MAA0B;QACpC,4DAA4D;QAC5D,MAAM,EAAE,GAAG,IAAI,CAAC;QAChB,OAAO,SAAS,SAAS,CACvB,MAAc,EACd,WAAwB,EACxB,UAAmF;YAEnF,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;gBACtB,MAAM,KAAK,CAAC,oDAAoD,CAAC,CAAC;YACpE,CAAC;YAED,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC,mBAAmB,CAAC,UAAU,CAAC,KAAK,EAAE;gBAC1D,GAAG,MAAM;gBACT,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,MAAM,CAAC,WAAW,CAAC;gBACzC,WAAW,EAAE,MAAM;aACpB,CAAC,CAAC;YAEH,OAAO,UAAU,CAAC;QACpB,CAAC,CAAC;IACJ,CAAC;CACF;AAtED,4CAsEC"}
package/index.ts CHANGED
@@ -45,11 +45,15 @@ const asyncLocalCtx = new AsyncLocalStorage<PrismaDataSourceContext>();
45
45
 
46
46
  class PrismaTransactionHandler implements DataSourceTransactionHandler {
47
47
  readonly dsType = 'PrismaDataSource';
48
+ readonly schemaName: string;
48
49
 
49
50
  constructor(
50
51
  readonly name: string,
51
52
  private readonly prismaAccess: PrismaLike | (() => PrismaLike),
52
- ) {}
53
+ schemaName: string = 'dbos',
54
+ ) {
55
+ this.schemaName = schemaName;
56
+ }
53
57
 
54
58
  get #prismaDB() {
55
59
  if (!this.prismaAccess) {
@@ -68,7 +72,9 @@ class PrismaTransactionHandler implements DataSourceTransactionHandler {
68
72
  async initialize(): Promise<void> {
69
73
  let installed = false;
70
74
  try {
71
- const res = await this.#prismaDB.$queryRawUnsafe<CheckSchemaInstallationReturn[]>(checkSchemaInstallationPG);
75
+ const res = await this.#prismaDB.$queryRawUnsafe<CheckSchemaInstallationReturn[]>(
76
+ checkSchemaInstallationPG(this.schemaName),
77
+ );
72
78
  installed = !!res[0]?.schema_exists && !!res[0]?.table_exists;
73
79
  } catch (e) {
74
80
  throw new Error(
@@ -79,11 +85,11 @@ class PrismaTransactionHandler implements DataSourceTransactionHandler {
79
85
  // Install
80
86
  if (!installed) {
81
87
  try {
82
- await this.#prismaDB.$executeRawUnsafe(createTransactionCompletionSchemaPG);
83
- await this.#prismaDB.$executeRawUnsafe(createTransactionCompletionTablePG);
88
+ await this.#prismaDB.$executeRawUnsafe(createTransactionCompletionSchemaPG(this.schemaName));
89
+ await this.#prismaDB.$executeRawUnsafe(createTransactionCompletionTablePG(this.schemaName));
84
90
  } catch (err) {
85
91
  throw new Error(
86
- `In initialization of 'PrismaDataSource' ${this.name}: The 'dbos.transaction_completion' table does not exist, and could not be created. This should be added to your database migrations.
92
+ `In initialization of 'PrismaDataSource' ${this.name}: The '${this.schemaName}.transaction_completion' table does not exist, and could not be created. This should be added to your database migrations.
87
93
  See: https://docs.dbos.dev/typescript/tutorials/transaction-tutorial#installing-the-dbos-schema`,
88
94
  );
89
95
  }
@@ -101,7 +107,7 @@ class PrismaTransactionHandler implements DataSourceTransactionHandler {
101
107
  ): Promise<{ output: string | null } | { error: string } | undefined> {
102
108
  type Result = { output: string | null; error: string | null };
103
109
  const result = await client.$queryRawUnsafe<Result[]>(
104
- `SELECT output, error FROM dbos.transaction_completion
110
+ `SELECT output, error FROM "${this.schemaName}".transaction_completion
105
111
  WHERE workflow_id = $1 AND function_num = $2`,
106
112
  workflowID,
107
113
  stepID,
@@ -116,7 +122,7 @@ class PrismaTransactionHandler implements DataSourceTransactionHandler {
116
122
  async #recordError(workflowID: string, stepID: number, error: string): Promise<void> {
117
123
  try {
118
124
  await this.#prismaDB.$executeRawUnsafe(
119
- `INSERT INTO dbos.transaction_completion (workflow_id, function_num, error)
125
+ `INSERT INTO "${this.schemaName}".transaction_completion (workflow_id, function_num, error)
120
126
  VALUES ($1, $2, $3)`,
121
127
  workflowID,
122
128
  stepID,
@@ -136,10 +142,11 @@ class PrismaTransactionHandler implements DataSourceTransactionHandler {
136
142
  workflowID: string,
137
143
  stepID: number,
138
144
  output: string | null,
145
+ schemaName: string,
139
146
  ): Promise<void> {
140
147
  try {
141
148
  await client.$executeRawUnsafe(
142
- `INSERT INTO dbos.transaction_completion (workflow_id, function_num, output)
149
+ `INSERT INTO "${schemaName}".transaction_completion (workflow_id, function_num, output)
143
150
  VALUES ($1, $2, $3)`,
144
151
  workflowID,
145
152
  stepID,
@@ -196,7 +203,13 @@ class PrismaTransactionHandler implements DataSourceTransactionHandler {
196
203
 
197
204
  // save the output of read/write transactions
198
205
  if (saveResults) {
199
- await PrismaTransactionHandler.#recordOutput(client, workflowID, stepID!, SuperJSON.stringify(result));
206
+ await PrismaTransactionHandler.#recordOutput(
207
+ client,
208
+ workflowID,
209
+ stepID!,
210
+ SuperJSON.stringify(result),
211
+ this.schemaName,
212
+ );
200
213
  }
201
214
 
202
215
  return result;
@@ -241,14 +254,14 @@ export class PrismaDataSource<PrismaClient> implements DBOSDataSource<Transactio
241
254
  return PrismaDataSource.#getClient(this.#provider) as PrismaClient;
242
255
  }
243
256
 
244
- static async initializeDBOSSchema(prisma: PrismaLike) {
245
- await prisma.$queryRawUnsafe(createTransactionCompletionSchemaPG);
246
- await prisma.$queryRawUnsafe(createTransactionCompletionTablePG);
257
+ static async initializeDBOSSchema(prisma: PrismaLike, schemaName: string = 'dbos') {
258
+ await prisma.$queryRawUnsafe(createTransactionCompletionSchemaPG(schemaName));
259
+ await prisma.$queryRawUnsafe(createTransactionCompletionTablePG(schemaName));
247
260
  }
248
261
 
249
- static async uninitializeDBOSSchema(prisma: PrismaLike) {
250
- await prisma.$executeRawUnsafe('DROP TABLE IF EXISTS dbos.transaction_completion;');
251
- await prisma.$executeRawUnsafe('DROP SCHEMA IF EXISTS dbos CASCADE;');
262
+ static async uninitializeDBOSSchema(prisma: PrismaLike, schemaName: string = 'dbos') {
263
+ await prisma.$executeRawUnsafe(`DROP TABLE IF EXISTS "${schemaName}".transaction_completion;`);
264
+ await prisma.$executeRawUnsafe(`DROP SCHEMA IF EXISTS "${schemaName}" CASCADE;`);
252
265
  }
253
266
 
254
267
  #provider: PrismaTransactionHandler;
@@ -256,8 +269,9 @@ export class PrismaDataSource<PrismaClient> implements DBOSDataSource<Transactio
256
269
  constructor(
257
270
  readonly name: string,
258
271
  prismaAccess: PrismaLike | (() => PrismaLike),
272
+ schemaName: string = 'dbos',
259
273
  ) {
260
- this.#provider = new PrismaTransactionHandler(name, prismaAccess);
274
+ this.#provider = new PrismaTransactionHandler(name, prismaAccess, schemaName);
261
275
  registerDataSource(this.#provider);
262
276
  }
263
277
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dbos-inc/prisma-datasource",
3
- "version": "4.4.4-preview",
3
+ "version": "4.4.5-preview",
4
4
  "description": "DBOS Data Source library for Prisma ORM with PostgreSQL support",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",