@javalabs/prisma-client 1.0.25 → 1.0.27

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.
Files changed (121) hide show
  1. package/package.json +5 -5
  2. package/prisma/schema.prisma +0 -4
  3. package/dist/index.d.ts +0 -7
  4. package/dist/index.js +0 -34
  5. package/dist/index.js.map +0 -1
  6. package/dist/prisma-factory.service.d.ts +0 -9
  7. package/dist/prisma-factory.service.js +0 -47
  8. package/dist/prisma-factory.service.js.map +0 -1
  9. package/dist/prisma.module.d.ts +0 -2
  10. package/dist/prisma.module.js +0 -23
  11. package/dist/prisma.module.js.map +0 -1
  12. package/dist/prisma.service.d.ts +0 -6
  13. package/dist/prisma.service.js +0 -27
  14. package/dist/prisma.service.js.map +0 -1
  15. package/dist/scripts/add-uuid-to-table.d.ts +0 -8
  16. package/dist/scripts/add-uuid-to-table.js +0 -98
  17. package/dist/scripts/add-uuid-to-table.js.map +0 -1
  18. package/dist/scripts/create-tenant-schemas.d.ts +0 -1
  19. package/dist/scripts/create-tenant-schemas.js +0 -117
  20. package/dist/scripts/create-tenant-schemas.js.map +0 -1
  21. package/dist/scripts/data-migration/batch-migrator.d.ts +0 -20
  22. package/dist/scripts/data-migration/batch-migrator.js +0 -134
  23. package/dist/scripts/data-migration/batch-migrator.js.map +0 -1
  24. package/dist/scripts/data-migration/data-transformer.d.ts +0 -26
  25. package/dist/scripts/data-migration/data-transformer.js +0 -278
  26. package/dist/scripts/data-migration/data-transformer.js.map +0 -1
  27. package/dist/scripts/data-migration/db-connector.d.ts +0 -12
  28. package/dist/scripts/data-migration/db-connector.js +0 -94
  29. package/dist/scripts/data-migration/db-connector.js.map +0 -1
  30. package/dist/scripts/data-migration/dependency-resolver.d.ts +0 -18
  31. package/dist/scripts/data-migration/dependency-resolver.js +0 -132
  32. package/dist/scripts/data-migration/dependency-resolver.js.map +0 -1
  33. package/dist/scripts/data-migration/entity-discovery.d.ts +0 -11
  34. package/dist/scripts/data-migration/entity-discovery.js +0 -152
  35. package/dist/scripts/data-migration/entity-discovery.js.map +0 -1
  36. package/dist/scripts/data-migration/foreign-key-manager.d.ts +0 -18
  37. package/dist/scripts/data-migration/foreign-key-manager.js +0 -160
  38. package/dist/scripts/data-migration/foreign-key-manager.js.map +0 -1
  39. package/dist/scripts/data-migration/migration-tool.d.ts +0 -48
  40. package/dist/scripts/data-migration/migration-tool.js +0 -290
  41. package/dist/scripts/data-migration/migration-tool.js.map +0 -1
  42. package/dist/scripts/data-migration/schema-utils.d.ts +0 -18
  43. package/dist/scripts/data-migration/schema-utils.js +0 -207
  44. package/dist/scripts/data-migration/schema-utils.js.map +0 -1
  45. package/dist/scripts/data-migration/tenant-migrator.d.ts +0 -15
  46. package/dist/scripts/data-migration/tenant-migrator.js +0 -117
  47. package/dist/scripts/data-migration/tenant-migrator.js.map +0 -1
  48. package/dist/scripts/data-migration/typecast-manager.d.ts +0 -9
  49. package/dist/scripts/data-migration/typecast-manager.js +0 -179
  50. package/dist/scripts/data-migration/typecast-manager.js.map +0 -1
  51. package/dist/scripts/data-migration/types.d.ts +0 -100
  52. package/dist/scripts/data-migration/types.js +0 -3
  53. package/dist/scripts/data-migration/types.js.map +0 -1
  54. package/dist/scripts/database-initializer.d.ts +0 -5
  55. package/dist/scripts/database-initializer.js +0 -45
  56. package/dist/scripts/database-initializer.js.map +0 -1
  57. package/dist/scripts/drop-database.d.ts +0 -10
  58. package/dist/scripts/drop-database.js +0 -81
  59. package/dist/scripts/drop-database.js.map +0 -1
  60. package/dist/scripts/encrypt-user-passwords.d.ts +0 -1
  61. package/dist/scripts/encrypt-user-passwords.js +0 -33
  62. package/dist/scripts/encrypt-user-passwords.js.map +0 -1
  63. package/dist/scripts/error-handler.d.ts +0 -12
  64. package/dist/scripts/error-handler.js +0 -82
  65. package/dist/scripts/error-handler.js.map +0 -1
  66. package/dist/scripts/fix-data-types.d.ts +0 -10
  67. package/dist/scripts/fix-data-types.js +0 -185
  68. package/dist/scripts/fix-data-types.js.map +0 -1
  69. package/dist/scripts/fix-enum-values.d.ts +0 -17
  70. package/dist/scripts/fix-enum-values.js +0 -234
  71. package/dist/scripts/fix-enum-values.js.map +0 -1
  72. package/dist/scripts/fix-schema-discrepancies.d.ts +0 -21
  73. package/dist/scripts/fix-schema-discrepancies.js +0 -240
  74. package/dist/scripts/fix-schema-discrepancies.js.map +0 -1
  75. package/dist/scripts/fix-table-indexes.d.ts +0 -26
  76. package/dist/scripts/fix-table-indexes.js +0 -460
  77. package/dist/scripts/fix-table-indexes.js.map +0 -1
  78. package/dist/scripts/migrate-schema-structure.d.ts +0 -1
  79. package/dist/scripts/migrate-schema-structure.js +0 -76
  80. package/dist/scripts/migrate-schema-structure.js.map +0 -1
  81. package/dist/scripts/migrate-uuid.d.ts +0 -2
  82. package/dist/scripts/migrate-uuid.js +0 -57
  83. package/dist/scripts/migrate-uuid.js.map +0 -1
  84. package/dist/scripts/post-migration-validator.d.ts +0 -34
  85. package/dist/scripts/post-migration-validator.js +0 -363
  86. package/dist/scripts/post-migration-validator.js.map +0 -1
  87. package/dist/scripts/pre-migration-validator.d.ts +0 -25
  88. package/dist/scripts/pre-migration-validator.js +0 -491
  89. package/dist/scripts/pre-migration-validator.js.map +0 -1
  90. package/dist/scripts/reset-database.d.ts +0 -17
  91. package/dist/scripts/reset-database.js +0 -202
  92. package/dist/scripts/reset-database.js.map +0 -1
  93. package/dist/scripts/retry-failed-migrations.d.ts +0 -14
  94. package/dist/scripts/retry-failed-migrations.js +0 -301
  95. package/dist/scripts/retry-failed-migrations.js.map +0 -1
  96. package/dist/scripts/run-migration.d.ts +0 -1
  97. package/dist/scripts/run-migration.js +0 -512
  98. package/dist/scripts/run-migration.js.map +0 -1
  99. package/dist/scripts/schema-sync.d.ts +0 -1
  100. package/dist/scripts/schema-sync.js +0 -85
  101. package/dist/scripts/schema-sync.js.map +0 -1
  102. package/dist/scripts/sequence-sync-cli.d.ts +0 -2
  103. package/dist/scripts/sequence-sync-cli.js +0 -287
  104. package/dist/scripts/sequence-sync-cli.js.map +0 -1
  105. package/dist/scripts/sequence-synchronizer.d.ts +0 -8
  106. package/dist/scripts/sequence-synchronizer.js +0 -88
  107. package/dist/scripts/sequence-synchronizer.js.map +0 -1
  108. package/dist/scripts/sync-enum-types.d.ts +0 -13
  109. package/dist/scripts/sync-enum-types.js +0 -139
  110. package/dist/scripts/sync-enum-types.js.map +0 -1
  111. package/dist/scripts/sync-enum-values.d.ts +0 -20
  112. package/dist/scripts/sync-enum-values.js +0 -336
  113. package/dist/scripts/sync-enum-values.js.map +0 -1
  114. package/dist/scripts/truncate-database.d.ts +0 -10
  115. package/dist/scripts/truncate-database.js +0 -100
  116. package/dist/scripts/truncate-database.js.map +0 -1
  117. package/dist/scripts/verify-migration-setup.d.ts +0 -11
  118. package/dist/scripts/verify-migration-setup.js +0 -120
  119. package/dist/scripts/verify-migration-setup.js.map +0 -1
  120. package/dist/tsconfig.tsbuildinfo +0 -1
  121. package/prisma/migrations/add_athena_match_fields.sql +0 -13
@@ -1 +0,0 @@
1
- {"version":3,"file":"batch-migrator.js","sourceRoot":"","sources":["../../../src/scripts/data-migration/batch-migrator.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AAGxC,yDAAqD;AAQrD,MAAM,UAAU,GAAG,GAAG,CAAC;AACvB,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAE9B,MAAa,aAAa;IAIxB,YACmB,WAAwB,EACxB,eAAgC,EAChC,WAAgC,EAChC,OAAyB,EACzB,UAA0B;QAJ1B,gBAAW,GAAX,WAAW,CAAa;QACxB,oBAAe,GAAf,eAAe,CAAiB;QAChC,gBAAW,GAAX,WAAW,CAAqB;QAChC,YAAO,GAAP,OAAO,CAAkB;QACzB,eAAU,GAAV,UAAU,CAAgB;QAR5B,WAAM,GAAG,IAAI,eAAM,CAAC,eAAe,CAAC,CAAC;QAUpD,IAAI,CAAC,eAAe,GAAG,IAAI,kCAAe,EAAE,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,aAA6B,EAC7B,aAA6B;QAE7B,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;YACzC,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CACrC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,KAAK,YAAY,CAAC,WAAW,CACtD,CAAC;YAEF,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,IAAI,YAAY,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;oBACtC,MAAM,IAAI,KAAK,CACb,mBAAmB,YAAY,CAAC,WAAW,6BAA6B,CACzE,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,UAAU,YAAY,CAAC,WAAW,6CAA6C,CAChF,CAAC;gBACF,SAAS;YACX,CAAC;YAED,IACE,CAAC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CACtC,YAAY,CAAC,SAAS,EACtB,YAAY,CAAC,SAAS,CACvB,EACD,CAAC;gBACD,MAAM,IAAI,KAAK,CACb,sCAAsC,YAAY,CAAC,WAAW,IAAI;oBAChE,UAAU,YAAY,CAAC,SAAS,cAAc,YAAY,CAAC,SAAS,EAAE,CACzE,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,0BAA0B,CAC9B,YAAoB,EACpB,YAAoB,EACpB,WAAwB,EACxB,QAAgB;QAEhB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAC1D,YAAY,EACZ,WAAW,CAAC,WAAW,CACxB,CAAC;QACF,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAC1D,YAAY,EACZ,WAAW,CAAC,WAAW,CACxB,CAAC;QAEF,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QAExD,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,cAAc,GAAG,IAAI,CAAC;QAC1B,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,OAAO,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CACnC,YAAY,EACZ,WAAW,EACX,MAAM,EACN,UAAU,CACX,CAAC;gBAEF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACzB,cAAc,GAAG,KAAK,CAAC;oBACvB,SAAS;gBACX,CAAC;gBAED,MAAM,IAAI,CAAC,2BAA2B,CACpC,OAAO,EACP,YAAY,EACZ,WAAW,EACX,aAAa,EACb,aAAa,EACb,QAAQ,CACT,CAAC;gBAEF,MAAM,IAAI,UAAU,CAAC;gBACrB,UAAU,GAAG,CAAC,CAAC;YACjB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,UAAU,GAAG,WAAW,EAAE,CAAC;oBAC7B,UAAU,EAAE,CAAC;oBACb,MAAM,KAAK,GAAG,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;oBAC7D,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,uCAAuC,KAAK,eAAe,UAAU,IAAI,WAAW,MAAM,KAAK,CAAC,OAAO,EAAE,CAC1G,CAAC;oBACF,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC7D,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,KAAK,CACb,iCAAiC,WAAW,aAAa,KAAK,CAAC,OAAO,EAAE,CACzE,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,UAAU,CACtB,YAAoB,EACpB,WAAwB,EACxB,MAAc,EACd,KAAa;QAEb,MAAM,KAAK,GAAG;;cAEJ,YAAY,MAAM,WAAW,CAAC,WAAW;QAC/C,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC;kBACxB,WAAW,CAAC,OAAO;cACvB,KAAK;eACJ,MAAM;KAChB,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9D,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IAEO,gBAAgB,CAAC,WAAwB;QAC/C,MAAM,UAAU,GAAG,EAAE,CAAC;QAEtB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,UAAU,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,YAAY,QAAQ,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QAC1E,CAAC;QAED,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;YAC7B,UAAU,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,YAAY,eAAe,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,CAAC;IAEO,KAAK,CAAC,2BAA2B,CACvC,OAAc,EACd,YAAoB,EACpB,WAAwB,EACxB,aAA6B,EAC7B,aAA6B,EAC7B,QAAgB;QAEhB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAC3D,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAE5B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,eAAe,CAClD,MAAM,EACN,aAAa,EACb,aAAa,EACb,QAAQ,CACT,CAAC;gBAEF,MAAM,IAAI,CAAC,YAAY,CACrB,MAAM,EACN,YAAY,EACZ,WAAW,CAAC,WAAW,EACvB,iBAAiB,CAClB,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC/B,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,eAAe,CAC3B,MAAW,EACX,aAA6B,EAC7B,aAA6B,EAC7B,QAAgB;QAEhB,MAAM,iBAAiB,GAAQ,EAAE,CAAC;QAElC,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;YACzC,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CACrC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,KAAK,YAAY,CAAC,WAAW,CACtD,CAAC;YAEF,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,iBAAiB,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;gBACnD,SAAS;YACX,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YAC/C,iBAAiB,CAAC,YAAY,CAAC,WAAW,CAAC;gBACzC,MAAM,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAC7C,KAAK,EACL,YAAY,CAAC,WAAW,kCACnB,YAAY,KAAE,WAAW,EAAE,YAAY,CAAC,SAAS,KACtD,QAAQ,CACT,CAAC;QACN,CAAC;QAED,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAEO,KAAK,CAAC,YAAY,CACxB,MAAW,EACX,MAAc,EACd,KAAa,EACb,MAAW;QAEX,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAElE,MAAM,KAAK,GAAG;qBACG,MAAM,MAAM,KAAK;SAC7B,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBACpC,YAAY;;KAEvB,CAAC;QAEF,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;CACF;AAxOD,sCAwOC"}
@@ -1,26 +0,0 @@
1
- import { ColumnSchema, EnumCastValue } from "./types";
2
- import { SchemaUtils } from "./schema-utils";
3
- import { DatabaseConnections } from "./types";
4
- export declare class DataTransformer {
5
- private readonly logger;
6
- private readonly schemaUtils;
7
- private readonly sourceConnection;
8
- private connections;
9
- private migrationConfig;
10
- private options;
11
- private foreignKeyManager;
12
- private readonly typecastManager;
13
- constructor(schemaUtils: SchemaUtils, sourceConnection: any, connections: DatabaseConnections);
14
- validateEnumValue(tableName: string, columnName: string, value: string | null, isNullable?: boolean): Promise<string | null>;
15
- private getEnumTypeName;
16
- transformToNumeric(value: any): number | null;
17
- private getDefaultEnumValue;
18
- prepareEnumValue(tenantId: string, enumType: string, value: string): Promise<EnumCastValue | null>;
19
- transformColumnValue(value: any, columnName: string, targetColumn: ColumnSchema & {
20
- source_type?: string;
21
- }, tenantId: string): Promise<any>;
22
- private getDefaultValue;
23
- private extractEnumValueFromObject;
24
- private handleEnumType;
25
- transformRecord(record: any, sourceSchema: ColumnSchema[], targetSchema: ColumnSchema[], tenantId: string): Promise<any>;
26
- }
@@ -1,278 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DataTransformer = void 0;
4
- const common_1 = require("@nestjs/common");
5
- const typecast_manager_1 = require("./typecast-manager");
6
- class DataTransformer {
7
- constructor(schemaUtils, sourceConnection, connections) {
8
- this.logger = new common_1.Logger("DataTransformer");
9
- this.schemaUtils = schemaUtils;
10
- this.sourceConnection = sourceConnection;
11
- this.connections = connections;
12
- this.typecastManager = new typecast_manager_1.TypecastManager();
13
- }
14
- async validateEnumValue(tableName, columnName, value, isNullable = true) {
15
- try {
16
- if (value === null) {
17
- return isNullable
18
- ? null
19
- : await this.getDefaultEnumValue(tableName, columnName);
20
- }
21
- const enumTypeName = await this.getEnumTypeName(tableName, columnName);
22
- const normalizedValue = value.toString().trim().toLowerCase();
23
- const query = `SELECT unnest(enum_range(NULL::${enumTypeName})) as enum_value`;
24
- const validValues = await this.connections.sourcePool.query(query);
25
- if (!validValues || !validValues.rows) {
26
- this.logger.warn(`No se pudieron obtener valores válidos para el enum ${enumTypeName}`);
27
- return await this.getDefaultEnumValue(enumTypeName);
28
- }
29
- const enumValues = validValues.rows.map((row) => row.enum_value.toLowerCase());
30
- if (enumValues.includes(normalizedValue)) {
31
- return value.toString().trim();
32
- }
33
- const partialMatch = enumValues.find((enumValue) => enumValue.includes(normalizedValue) ||
34
- normalizedValue.includes(enumValue));
35
- if (partialMatch) {
36
- this.logger.debug(`Valor enum corregido: ${value} -> ${partialMatch} para ${tableName}.${columnName}`);
37
- return partialMatch;
38
- }
39
- const defaultValue = await this.getDefaultEnumValue(enumTypeName);
40
- if (defaultValue) {
41
- this.logger.warn(`Usando valor por defecto ${defaultValue} para ${tableName}.${columnName}`);
42
- return defaultValue;
43
- }
44
- if (!isNullable) {
45
- throw new Error(`No se pudo encontrar un valor válido para el enum ${enumTypeName}`);
46
- }
47
- return null;
48
- }
49
- catch (error) {
50
- this.logger.error(`Error validating enum value for ${tableName}.${columnName}: ${error.message}`);
51
- if (!isNullable) {
52
- return await this.getDefaultEnumValue(tableName, columnName);
53
- }
54
- return null;
55
- }
56
- }
57
- async getEnumTypeName(tableName, columnName) {
58
- const result = await this.connections.sourcePool.query(`
59
- SELECT udt_name
60
- FROM information_schema.columns
61
- WHERE table_name = $1
62
- AND column_name = $2
63
- AND table_schema = 'public'
64
- `, [tableName.replace(/^public\./, ""), columnName]);
65
- if (result.rows.length === 0) {
66
- throw new Error(`No se encontró el tipo de enum para ${tableName}.${columnName}`);
67
- }
68
- return result.rows[0].udt_name;
69
- }
70
- transformToNumeric(value) {
71
- if (value === null || value === "") {
72
- return null;
73
- }
74
- const numericValue = parseFloat(value);
75
- if (isNaN(numericValue)) {
76
- return null;
77
- }
78
- return numericValue;
79
- }
80
- async getDefaultEnumValue(enumType, tenantId = "public") {
81
- try {
82
- const enumDefaults = {
83
- enum_users_role: "user",
84
- enum_account_type: "savings",
85
- enum_transaction_type: "payin",
86
- enum_transaction_status: "pending",
87
- };
88
- if (enumDefaults[enumType]) {
89
- return enumDefaults[enumType];
90
- }
91
- const query = `
92
- SELECT e.enumlabel
93
- FROM pg_type t
94
- JOIN pg_enum e ON t.oid = e.enumtypid
95
- JOIN pg_namespace n ON n.oid = t.typnamespace
96
- WHERE t.typname = $1 AND n.nspname = $2
97
- ORDER BY e.enumsortorder
98
- LIMIT 1
99
- `;
100
- const result = await this.schemaUtils.queryTargetDb(query, [
101
- enumType,
102
- tenantId,
103
- ]);
104
- if (result.rows.length > 0) {
105
- return result.rows[0].enumlabel;
106
- }
107
- return null;
108
- }
109
- catch (error) {
110
- this.logger.error(`Error getting default enum value for ${enumType}: ${error.message}`);
111
- return null;
112
- }
113
- }
114
- async prepareEnumValue(tenantId, enumType, value) {
115
- if (value === null || value === undefined || value === "") {
116
- return null;
117
- }
118
- const validatedValue = await this.validateEnumValue(tenantId, enumType, value);
119
- if (validatedValue === null) {
120
- const defaultValue = await this.getDefaultEnumValue(enumType, tenantId);
121
- if (defaultValue) {
122
- this.logger.warn(`Using first enum value '${defaultValue}' as default for invalid value '${value}' of type ${enumType}`);
123
- return {
124
- needsEnumCast: true,
125
- value: defaultValue,
126
- enumType,
127
- };
128
- }
129
- return null;
130
- }
131
- return {
132
- needsEnumCast: true,
133
- value: validatedValue,
134
- enumType,
135
- };
136
- }
137
- async transformColumnValue(value, columnName, targetColumn, tenantId) {
138
- if (value === null || value === undefined) {
139
- return targetColumn.is_nullable === "YES"
140
- ? null
141
- : this.getDefaultValue(targetColumn);
142
- }
143
- try {
144
- if (targetColumn.source_type) {
145
- return this.typecastManager.castValue(value, targetColumn.source_type, targetColumn.data_type);
146
- }
147
- switch (targetColumn.data_type.toLowerCase()) {
148
- case "integer":
149
- case "bigint":
150
- case "smallint":
151
- return typeof value === "string" ? parseInt(value, 10) : value;
152
- case "numeric":
153
- case "decimal":
154
- case "real":
155
- case "double precision":
156
- return typeof value === "string" ? parseFloat(value) : value;
157
- case "boolean":
158
- if (typeof value === "string") {
159
- return value.toLowerCase() === "true" || value === "1";
160
- }
161
- return Boolean(value);
162
- case "json":
163
- case "jsonb":
164
- if (typeof value === "string") {
165
- try {
166
- return JSON.parse(value);
167
- }
168
- catch (_a) {
169
- return value;
170
- }
171
- }
172
- return value;
173
- case "timestamp":
174
- case "timestamptz":
175
- case "timestamp with time zone":
176
- case "timestamp without time zone":
177
- if (value instanceof Date) {
178
- return value.toISOString();
179
- }
180
- if (typeof value === "string" || typeof value === "number") {
181
- return new Date(value).toISOString();
182
- }
183
- return value;
184
- case "date":
185
- if (value instanceof Date) {
186
- return value.toISOString().split("T")[0];
187
- }
188
- if (typeof value === "string" || typeof value === "number") {
189
- return new Date(value).toISOString().split("T")[0];
190
- }
191
- return value;
192
- case "text":
193
- case "character varying":
194
- case "varchar":
195
- case "char":
196
- return String(value);
197
- default:
198
- return value;
199
- }
200
- }
201
- catch (error) {
202
- this.logger.warn(`Error transformando valor para columna ${columnName}: ${error.message}`);
203
- return targetColumn.is_nullable === "YES"
204
- ? null
205
- : this.getDefaultValue(targetColumn);
206
- }
207
- }
208
- getDefaultValue(column) {
209
- switch (column.data_type.toLowerCase()) {
210
- case "integer":
211
- case "bigint":
212
- case "smallint":
213
- return 0;
214
- case "numeric":
215
- case "decimal":
216
- case "real":
217
- case "double precision":
218
- return 0.0;
219
- case "boolean":
220
- return false;
221
- case "text":
222
- case "character varying":
223
- case "varchar":
224
- case "char":
225
- return "";
226
- case "json":
227
- case "jsonb":
228
- return "{}";
229
- case "timestamp":
230
- case "timestamptz":
231
- case "timestamp with time zone":
232
- case "timestamp without time zone":
233
- return new Date().toISOString();
234
- case "date":
235
- return new Date().toISOString().split("T")[0];
236
- default:
237
- return null;
238
- }
239
- }
240
- extractEnumValueFromObject(value) {
241
- if (typeof value === "object" && value !== null) {
242
- const possibleProperties = ["value", "type", "name", "code"];
243
- for (const prop of possibleProperties) {
244
- if (value[prop] && typeof value[prop] === "string") {
245
- return value[prop].trim();
246
- }
247
- }
248
- }
249
- return null;
250
- }
251
- async handleEnumType(value, columnName, targetColumn, tenantId) {
252
- if (value === null && targetColumn.is_nullable === "YES") {
253
- return null;
254
- }
255
- const enumType = targetColumn.udt_name;
256
- const validatedValue = await this.validateEnumValue(tenantId, columnName, value, targetColumn.is_nullable === "YES");
257
- return validatedValue;
258
- }
259
- async transformRecord(record, sourceSchema, targetSchema, tenantId) {
260
- const transformedData = {};
261
- for (const [key, value] of Object.entries(record)) {
262
- let targetColumn = targetSchema.find((col) => col.column_name === key);
263
- if (!targetColumn) {
264
- targetColumn = targetSchema.find((col) => col.column_name.toLowerCase() === key.toLowerCase());
265
- }
266
- if (!targetColumn) {
267
- this.logger.warn(`Column ${key} not found in target schema, skipping`);
268
- continue;
269
- }
270
- const columnName = targetColumn.column_name;
271
- const transformedValue = await this.transformColumnValue(value, columnName, targetColumn, tenantId);
272
- transformedData[columnName] = transformedValue;
273
- }
274
- return transformedData;
275
- }
276
- }
277
- exports.DataTransformer = DataTransformer;
278
- //# sourceMappingURL=data-transformer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-transformer.js","sourceRoot":"","sources":["../../../src/scripts/data-migration/data-transformer.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- import { PrismaClient } from "@prisma/client";
2
- import { DatabaseConnections } from "./types";
3
- export interface SourceDatabase {
4
- id: string;
5
- url: string;
6
- name: string;
7
- }
8
- export declare class DatabaseConnector {
9
- static createConnections(sourceDatabases?: SourceDatabase[]): DatabaseConnections;
10
- static createTenantPrismaClient(tenantId: string): PrismaClient;
11
- static cleanup(connections: DatabaseConnections): Promise<void>;
12
- }
@@ -1,94 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DatabaseConnector = void 0;
4
- const client_1 = require("@prisma/client");
5
- const pg = require("pg");
6
- const dotenv = require("dotenv");
7
- dotenv.config();
8
- class DatabaseConnector {
9
- static createConnections(sourceDatabases) {
10
- const sourceConnections = (sourceDatabases || []).map((source) => {
11
- const pool = new pg.Pool({
12
- connectionString: source.url,
13
- });
14
- const prisma = new client_1.PrismaClient({
15
- datasources: {
16
- db: {
17
- url: source.url,
18
- },
19
- },
20
- });
21
- const connection = {
22
- pool,
23
- prisma,
24
- sourceId: source.id,
25
- async query(sql, params) {
26
- return pool.query(sql, params);
27
- },
28
- };
29
- return connection;
30
- });
31
- const sourcePool = new pg.Pool({
32
- connectionString: process.env.SOURCE_DATABASE_URL,
33
- max: 20,
34
- idleTimeoutMillis: 30000,
35
- });
36
- const sourcePrisma = new client_1.PrismaClient({
37
- datasources: {
38
- db: {
39
- url: process.env.SOURCE_DATABASE_URL,
40
- },
41
- },
42
- });
43
- const targetPool = new pg.Pool({
44
- connectionString: process.env.DATABASE_URL,
45
- max: 20,
46
- idleTimeoutMillis: 30000,
47
- });
48
- const targetPrisma = new client_1.PrismaClient({
49
- datasources: {
50
- db: {
51
- url: process.env.DATABASE_URL,
52
- },
53
- },
54
- });
55
- return {
56
- sourceConnections,
57
- targetPrisma,
58
- targetPool,
59
- sourcePool,
60
- sourcePrisma,
61
- };
62
- }
63
- static createTenantPrismaClient(tenantId) {
64
- return new client_1.PrismaClient({
65
- datasources: {
66
- db: {
67
- url: `${process.env.DATABASE_URL}?schema=${tenantId}`,
68
- },
69
- },
70
- transactionOptions: {
71
- maxWait: 120000,
72
- timeout: 120000,
73
- },
74
- });
75
- }
76
- static async cleanup(connections) {
77
- if (connections.sourceConnections) {
78
- for (const sourceConn of connections.sourceConnections) {
79
- if (sourceConn.pool)
80
- await sourceConn.pool.end();
81
- if (sourceConn.prisma)
82
- await sourceConn.prisma.$disconnect();
83
- }
84
- }
85
- await connections.targetPrisma.$disconnect();
86
- await connections.targetPool.end();
87
- if (connections.sourcePrisma)
88
- await connections.sourcePrisma.$disconnect();
89
- if (connections.sourcePool)
90
- await connections.sourcePool.end();
91
- }
92
- }
93
- exports.DatabaseConnector = DatabaseConnector;
94
- //# sourceMappingURL=db-connector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"db-connector.js","sourceRoot":"","sources":["../../../src/scripts/data-migration/db-connector.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- import { Pool } from "pg";
2
- export declare class DependencyResolver {
3
- private readonly sourcePool;
4
- private readonly targetPool;
5
- private readonly logger;
6
- private readonly visitedTables;
7
- private readonly temporaryMark;
8
- private readonly tableOrder;
9
- private config;
10
- constructor(sourcePool: Pool, targetPool: Pool);
11
- setConfig(config: any): void;
12
- analyzeDependencies(): Promise<string[]>;
13
- private getPriorityOrder;
14
- private visit;
15
- private getAllTables;
16
- private getTableDependencies;
17
- validateDependencies(table: string, dependencies: string[]): Promise<boolean>;
18
- }
@@ -1,132 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DependencyResolver = void 0;
4
- const common_1 = require("@nestjs/common");
5
- class DependencyResolver {
6
- constructor(sourcePool, targetPool) {
7
- this.sourcePool = sourcePool;
8
- this.targetPool = targetPool;
9
- this.logger = new common_1.Logger("DependencyResolver");
10
- this.visitedTables = new Set();
11
- this.temporaryMark = new Set();
12
- this.tableOrder = [];
13
- }
14
- setConfig(config) {
15
- this.config = config;
16
- }
17
- async analyzeDependencies() {
18
- try {
19
- this.logger.log("Iniciando análisis de dependencias...");
20
- const tables = await this.getAllTables();
21
- this.visitedTables.clear();
22
- this.temporaryMark.clear();
23
- this.tableOrder.length = 0;
24
- const priorityOrder = this.getPriorityOrder(tables);
25
- for (const priorityGroup of priorityOrder) {
26
- for (const table of priorityGroup) {
27
- if (!this.visitedTables.has(table)) {
28
- await this.visit(table);
29
- }
30
- }
31
- }
32
- this.logger.log(`Orden de migración determinado: ${this.tableOrder.join(" -> ")}`);
33
- return this.tableOrder;
34
- }
35
- catch (error) {
36
- this.logger.error(`Error analizando dependencias: ${error.message}`);
37
- throw error;
38
- }
39
- }
40
- getPriorityOrder(tables) {
41
- var _a, _b, _c, _d, _e, _f;
42
- const priorities = {
43
- high: new Set(((_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.migrationPriorities) === null || _b === void 0 ? void 0 : _b.high) || []),
44
- medium: new Set(((_d = (_c = this.config) === null || _c === void 0 ? void 0 : _c.migrationPriorities) === null || _d === void 0 ? void 0 : _d.medium) || []),
45
- low: new Set(((_f = (_e = this.config) === null || _e === void 0 ? void 0 : _e.migrationPriorities) === null || _f === void 0 ? void 0 : _f.low) || []),
46
- };
47
- const highPriority = tables.filter((t) => priorities.high.has(t));
48
- const mediumPriority = tables.filter((t) => priorities.medium.has(t));
49
- const lowPriority = tables.filter((t) => priorities.low.has(t));
50
- const noPriority = tables.filter((t) => !priorities.high.has(t) &&
51
- !priorities.medium.has(t) &&
52
- !priorities.low.has(t));
53
- return [highPriority, mediumPriority, noPriority, lowPriority];
54
- }
55
- async visit(table, path = []) {
56
- if (this.temporaryMark.has(table)) {
57
- const cycle = [...path, table].join(" -> ");
58
- this.logger.warn(`Detectado ciclo de dependencias: ${cycle}`);
59
- return;
60
- }
61
- if (this.visitedTables.has(table)) {
62
- return;
63
- }
64
- this.temporaryMark.add(table);
65
- path.push(table);
66
- const dependencies = await this.getTableDependencies(table);
67
- for (const dep of dependencies) {
68
- if (!this.visitedTables.has(dep)) {
69
- await this.visit(dep, [...path]);
70
- }
71
- }
72
- this.temporaryMark.delete(table);
73
- this.visitedTables.add(table);
74
- this.tableOrder.push(table);
75
- }
76
- async getAllTables() {
77
- const query = `
78
- SELECT table_name
79
- FROM information_schema.tables
80
- WHERE table_schema = 'public'
81
- AND table_type = 'BASE TABLE'
82
- `;
83
- const result = await this.sourcePool.query(query);
84
- return result.rows.map((row) => row.table_name);
85
- }
86
- async getTableDependencies(table) {
87
- var _a, _b, _c;
88
- const dependencies = new Set();
89
- const configDeps = ((_c = (_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.tables) === null || _b === void 0 ? void 0 : _b[table]) === null || _c === void 0 ? void 0 : _c.dependencies) || [];
90
- configDeps.forEach((dep) => dependencies.add(dep));
91
- const query = `
92
- SELECT
93
- ccu.table_name AS foreign_table
94
- FROM
95
- information_schema.table_constraints tc
96
- JOIN information_schema.constraint_column_usage ccu
97
- ON ccu.constraint_name = tc.constraint_name
98
- WHERE
99
- tc.constraint_type = 'FOREIGN KEY'
100
- AND tc.table_name = $1
101
- AND tc.table_schema = 'public'
102
- `;
103
- try {
104
- const result = await this.sourcePool.query(query, [table]);
105
- result.rows.forEach((row) => dependencies.add(row.foreign_table));
106
- }
107
- catch (error) {
108
- this.logger.warn(`Error obteniendo dependencias para ${table}: ${error.message}`);
109
- }
110
- return Array.from(dependencies);
111
- }
112
- async validateDependencies(table, dependencies) {
113
- for (const dep of dependencies) {
114
- const query = `
115
- SELECT EXISTS (
116
- SELECT 1
117
- FROM information_schema.tables
118
- WHERE table_schema = 'public'
119
- AND table_name = $1
120
- )
121
- `;
122
- const result = await this.sourcePool.query(query, [dep]);
123
- if (!result.rows[0].exists) {
124
- this.logger.warn(`Dependencia ${dep} no encontrada para tabla ${table}`);
125
- return false;
126
- }
127
- }
128
- return true;
129
- }
130
- }
131
- exports.DependencyResolver = DependencyResolver;
132
- //# sourceMappingURL=dependency-resolver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dependency-resolver.js","sourceRoot":"","sources":["../../../src/scripts/data-migration/dependency-resolver.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- import { Pool } from "pg";
2
- import { EntityType } from "./types";
3
- export declare class EntityDiscovery {
4
- private readonly targetPool;
5
- private readonly logger;
6
- constructor(targetPool: Pool);
7
- discoverEntityTypes(schemaName: string, tables: string[]): Promise<EntityType[]>;
8
- private getPrimaryKey;
9
- private getForeignKeys;
10
- private findJoinTables;
11
- }