@javalabs/prisma-client 1.0.4 → 1.0.8

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 (75) hide show
  1. package/dist/scripts/data-migration/batch-migrator.d.ts +14 -19
  2. package/dist/scripts/data-migration/batch-migrator.js +98 -297
  3. package/dist/scripts/data-migration/batch-migrator.js.map +1 -1
  4. package/dist/scripts/data-migration/data-transformer.d.ts +16 -7
  5. package/dist/scripts/data-migration/data-transformer.js +169 -133
  6. package/dist/scripts/data-migration/data-transformer.js.map +1 -1
  7. package/dist/scripts/data-migration/db-connector.d.ts +6 -1
  8. package/dist/scripts/data-migration/db-connector.js +44 -8
  9. package/dist/scripts/data-migration/db-connector.js.map +1 -1
  10. package/dist/scripts/data-migration/dependency-resolver.d.ts +10 -10
  11. package/dist/scripts/data-migration/dependency-resolver.js +92 -211
  12. package/dist/scripts/data-migration/dependency-resolver.js.map +1 -1
  13. package/dist/scripts/data-migration/foreign-key-manager.d.ts +6 -5
  14. package/dist/scripts/data-migration/foreign-key-manager.js +108 -18
  15. package/dist/scripts/data-migration/foreign-key-manager.js.map +1 -1
  16. package/dist/scripts/data-migration/migration-config.json +63 -0
  17. package/dist/scripts/data-migration/migration-tool.d.ts +25 -6
  18. package/dist/scripts/data-migration/migration-tool.js +78 -38
  19. package/dist/scripts/data-migration/migration-tool.js.map +1 -1
  20. package/dist/scripts/data-migration/multi-source-migrator.d.ts +17 -0
  21. package/dist/scripts/data-migration/multi-source-migrator.js +130 -0
  22. package/dist/scripts/data-migration/multi-source-migrator.js.map +1 -0
  23. package/dist/scripts/data-migration/schema-utils.d.ts +3 -3
  24. package/dist/scripts/data-migration/schema-utils.js +62 -19
  25. package/dist/scripts/data-migration/schema-utils.js.map +1 -1
  26. package/dist/scripts/data-migration/tenant-migrator.js +9 -2
  27. package/dist/scripts/data-migration/tenant-migrator.js.map +1 -1
  28. package/dist/scripts/data-migration/typecast-manager.d.ts +7 -3
  29. package/dist/scripts/data-migration/typecast-manager.js +169 -25
  30. package/dist/scripts/data-migration/typecast-manager.js.map +1 -1
  31. package/dist/scripts/data-migration/types.d.ts +68 -2
  32. package/dist/scripts/database-initializer.d.ts +5 -0
  33. package/dist/scripts/database-initializer.js +45 -0
  34. package/dist/scripts/database-initializer.js.map +1 -0
  35. package/dist/scripts/fix-table-indexes.d.ts +26 -0
  36. package/dist/scripts/fix-table-indexes.js +460 -0
  37. package/dist/scripts/fix-table-indexes.js.map +1 -0
  38. package/dist/scripts/multi-db-migration.d.ts +1 -0
  39. package/dist/scripts/multi-db-migration.js +55 -0
  40. package/dist/scripts/multi-db-migration.js.map +1 -0
  41. package/dist/scripts/post-migration-validator.d.ts +18 -5
  42. package/dist/scripts/post-migration-validator.js +61 -39
  43. package/dist/scripts/post-migration-validator.js.map +1 -1
  44. package/dist/scripts/run-migration.js +83 -96
  45. package/dist/scripts/run-migration.js.map +1 -1
  46. package/dist/scripts/sequence-synchronizer.d.ts +8 -0
  47. package/dist/scripts/sequence-synchronizer.js +88 -0
  48. package/dist/scripts/sequence-synchronizer.js.map +1 -0
  49. package/dist/tsconfig.tsbuildinfo +1 -1
  50. package/migration-config.json +40 -72
  51. package/{migration-config-public.json → migration-config.json.bk} +14 -14
  52. package/package.json +10 -3
  53. package/prisma/migrations/{20250422001248_add_bank_account_id → 0_init}/migration.sql +269 -47
  54. package/prisma/migrations/20250505171324_add_bank_owner_name_in_manual_transfer/migration.sql +2 -0
  55. package/prisma/migrations/20250505173850_add_method_name_in_manual_transfer/migration.sql +2 -0
  56. package/prisma/migrations/migration_lock.toml +2 -2
  57. package/prisma/schema.prisma +214 -77
  58. package/src/scripts/data-migration/batch-migrator.ts +192 -513
  59. package/src/scripts/data-migration/data-transformer.ts +252 -203
  60. package/src/scripts/data-migration/db-connector.ts +66 -13
  61. package/src/scripts/data-migration/dependency-resolver.ts +121 -266
  62. package/src/scripts/data-migration/foreign-key-manager.ts +214 -32
  63. package/src/scripts/data-migration/migration-config.json +63 -0
  64. package/src/scripts/data-migration/migration-tool.ts +377 -225
  65. package/src/scripts/data-migration/schema-utils.ts +94 -32
  66. package/src/scripts/data-migration/tenant-migrator.ts +12 -5
  67. package/src/scripts/data-migration/typecast-manager.ts +186 -31
  68. package/src/scripts/data-migration/types.ts +78 -5
  69. package/src/scripts/database-initializer.ts +49 -0
  70. package/src/scripts/fix-table-indexes.ts +602 -0
  71. package/src/scripts/post-migration-validator.ts +206 -107
  72. package/src/scripts/run-migration.ts +140 -124
  73. package/src/scripts/sequence-synchronizer.ts +127 -0
  74. package/prisma/migrations/20250422001957_add_bank_account_id_relations/migration.sql +0 -14
  75. package/src/scripts/dumps/source_dump_20250413_112626.sql +0 -1527
@@ -2,61 +2,71 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DataTransformer = void 0;
4
4
  const common_1 = require("@nestjs/common");
5
+ const typecast_manager_1 = require("./typecast-manager");
5
6
  class DataTransformer {
6
- constructor(schemaUtils) {
7
- this.schemaUtils = schemaUtils;
7
+ constructor(schemaUtils, sourceConnection, connections) {
8
8
  this.logger = new common_1.Logger("DataTransformer");
9
- this.enumValuesCache = new Map();
10
- this.columnValuesCache = new Map();
9
+ this.schemaUtils = schemaUtils;
10
+ this.sourceConnection = sourceConnection;
11
+ this.connections = connections;
12
+ this.typecastManager = new typecast_manager_1.TypecastManager();
11
13
  }
12
- async validateEnumValue(schemaName, enumType, value) {
14
+ async validateEnumValue(tableName, columnName, value, isNullable = true) {
13
15
  try {
14
- const cacheKey = `${schemaName}.${enumType}`;
15
- if (!this.enumValuesCache.has(cacheKey)) {
16
- const query = `
17
- SELECT e.enumlabel
18
- FROM pg_type t
19
- JOIN pg_enum e ON t.oid = e.enumtypid
20
- JOIN pg_namespace n ON n.oid = t.typnamespace
21
- WHERE t.typname = $1 AND n.nspname = $2
22
- `;
23
- const result = await this.schemaUtils.queryTargetDb(query, [
24
- enumType,
25
- schemaName,
26
- ]);
27
- const uniqueValues = new Set(result.rows.map((row) => String(row.enumlabel)));
28
- const normalizedMap = new Map();
29
- result.rows.forEach((row) => {
30
- const original = String(row.enumlabel);
31
- const normalized = original.toLowerCase().trim();
32
- normalizedMap.set(normalized, original);
33
- });
34
- this.enumValuesCache.set(cacheKey, uniqueValues);
35
- this.enumValuesCache.set(`${cacheKey}_normalized`, normalizedMap);
36
- this.logger.log(`Valid values for ${enumType}: ${[...uniqueValues].join(", ")}`);
16
+ if (value === null) {
17
+ return isNullable
18
+ ? null
19
+ : await this.getDefaultEnumValue(tableName, columnName);
37
20
  }
38
- const validValues = this.enumValuesCache.get(cacheKey);
39
- const normalizedMap = this.enumValuesCache.get(`${cacheKey}_normalized`);
40
- if (!validValues || !normalizedMap) {
41
- throw new Error(`No valid values found for enum ${enumType}`);
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);
42
28
  }
43
- if (validValues.has(value)) {
44
- return value;
29
+ const enumValues = validValues.rows.map((row) => row.enum_value.toLowerCase());
30
+ if (enumValues.includes(normalizedValue)) {
31
+ return value.toString().trim();
45
32
  }
46
- const normalizedValue = value.toLowerCase().trim();
47
- if (normalizedMap.has(normalizedValue)) {
48
- return normalizedMap.get(normalizedValue);
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}`);
49
46
  }
50
- this.logger.warn(`Invalid enum value "${value}" for type ${enumType}. Valid values are: ${[
51
- ...validValues,
52
- ].join(", ")}`);
53
47
  return null;
54
48
  }
55
49
  catch (error) {
56
- this.logger.error(`Error validating enum value "${value}" for type ${enumType}: ${error.message}`);
50
+ this.logger.error(`Error validating enum value for ${tableName}.${columnName}: ${error.message}`);
51
+ if (!isNullable) {
52
+ return await this.getDefaultEnumValue(tableName, columnName);
53
+ }
57
54
  return null;
58
55
  }
59
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
+ }
60
70
  transformToNumeric(value) {
61
71
  if (value === null || value === "") {
62
72
  return null;
@@ -69,15 +79,24 @@ class DataTransformer {
69
79
  }
70
80
  async getDefaultEnumValue(enumType, tenantId = "public") {
71
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
+ }
72
91
  const query = `
73
- SELECT e.enumlabel
74
- FROM pg_type t
75
- JOIN pg_enum e ON t.oid = e.enumtypid
76
- JOIN pg_namespace n ON n.oid = t.typnamespace
77
- WHERE t.typname = $1 AND n.nspname = $2
78
- ORDER BY e.enumsortorder
79
- LIMIT 1
80
- `;
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
+ `;
81
100
  const result = await this.schemaUtils.queryTargetDb(query, [
82
101
  enumType,
83
102
  tenantId,
@@ -116,110 +135,127 @@ class DataTransformer {
116
135
  };
117
136
  }
118
137
  async transformColumnValue(value, columnName, targetColumn, tenantId) {
119
- this.logger.debug(`Transforming column ${columnName}, value: ${JSON.stringify(value)}, type: ${targetColumn.udt_name}`);
120
- if (value === null && targetColumn.is_nullable === "YES") {
121
- return null;
138
+ if (value === null || value === undefined) {
139
+ return targetColumn.is_nullable === "YES"
140
+ ? null
141
+ : this.getDefaultValue(targetColumn);
122
142
  }
123
143
  try {
124
- if (targetColumn.udt_name.startsWith("enum_")) {
125
- if (typeof value === "object" && value !== null) {
126
- const stringValue = this.extractEnumValueFromObject(value);
127
- if (stringValue) {
128
- return await this.prepareEnumValue(tenantId, targetColumn.udt_name, stringValue);
129
- }
130
- }
131
- if (typeof value === "string") {
132
- return await this.prepareEnumValue(tenantId, targetColumn.udt_name, value);
133
- }
134
- const defaultValue = await this.getDefaultEnumValue(targetColumn.udt_name, tenantId);
135
- if (defaultValue) {
136
- this.logger.warn(`Using default enum value '${defaultValue}' for column ${columnName}`);
137
- return {
138
- needsEnumCast: true,
139
- value: defaultValue,
140
- enumType: targetColumn.udt_name,
141
- };
142
- }
144
+ if (targetColumn.source_type) {
145
+ return this.typecastManager.castValue(value, targetColumn.source_type, targetColumn.data_type);
143
146
  }
144
- if (targetColumn.udt_name === "numeric" ||
145
- targetColumn.data_type === "decimal") {
146
- const numericValue = this.transformToNumeric(value);
147
- if (numericValue !== null || targetColumn.is_nullable === "YES") {
148
- return numericValue;
149
- }
150
- return 0;
151
- }
152
- if (targetColumn.udt_name === "bool" ||
153
- targetColumn.data_type === "boolean") {
154
- if (typeof value === "string") {
155
- return value.toLowerCase() === "true" || value === "1";
156
- }
157
- return Boolean(value);
158
- }
159
- if (targetColumn.data_type.includes("timestamp") ||
160
- targetColumn.data_type.includes("date")) {
161
- if (!value)
162
- return null;
163
- const date = new Date(value);
164
- return isNaN(date.getTime()) ? null : date.toISOString();
165
- }
166
- if (targetColumn.data_type === "json" ||
167
- targetColumn.data_type === "jsonb") {
168
- if (typeof value === "string") {
169
- try {
170
- return JSON.parse(value);
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";
171
160
  }
172
- catch (_a) {
173
- return value;
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
+ }
174
171
  }
175
- }
176
- return value;
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;
177
199
  }
178
- return value;
179
200
  }
180
201
  catch (error) {
181
- this.logger.error(`Error transforming value for column ${columnName}: ${error.message}`);
182
- if (targetColumn.is_nullable === "YES") {
183
- return null;
184
- }
185
- return this.getDefaultValueForType(targetColumn.udt_name);
202
+ this.logger.warn(`Error transformando valor para columna ${columnName}: ${error.message}`);
203
+ return targetColumn.is_nullable === "YES"
204
+ ? null
205
+ : this.getDefaultValue(targetColumn);
186
206
  }
187
207
  }
188
- extractEnumValueFromObject(value) {
189
- const possibleKeys = ["type", "value", "document_type", "status", "state"];
190
- for (const key of possibleKeys) {
191
- if (value[key] && typeof value[key] === "string") {
192
- return value[key];
193
- }
194
- }
195
- for (const val of Object.values(value)) {
196
- if (typeof val === "string") {
197
- return val;
198
- }
199
- }
200
- return null;
201
- }
202
- getDefaultValueForType(udtName) {
203
- switch (udtName) {
204
- case "int4":
205
- case "int8":
206
- case "numeric":
208
+ getDefaultValue(column) {
209
+ switch (column.data_type.toLowerCase()) {
210
+ case "integer":
211
+ case "bigint":
212
+ case "smallint":
207
213
  return 0;
208
- case "bool":
214
+ case "numeric":
215
+ case "decimal":
216
+ case "real":
217
+ case "double precision":
218
+ return 0.0;
219
+ case "boolean":
209
220
  return false;
210
221
  case "text":
222
+ case "character varying":
211
223
  case "varchar":
224
+ case "char":
212
225
  return "";
213
- case "jsonb":
214
226
  case "json":
215
- return {};
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];
216
236
  default:
217
- if (udtName.startsWith("enum_")) {
218
- return null;
219
- }
220
237
  return null;
221
238
  }
222
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
+ }
223
259
  async transformRecord(record, sourceSchema, targetSchema, tenantId) {
224
260
  const transformedData = {};
225
261
  for (const [key, value] of Object.entries(record)) {
@@ -1 +1 @@
1
- {"version":3,"file":"data-transformer.js","sourceRoot":"","sources":["../../../src/scripts/data-migration/data-transformer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-transformer.js","sourceRoot":"","sources":["../../../src/scripts/data-migration/data-transformer.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,12 @@
1
1
  import { PrismaClient } from "@prisma/client";
2
2
  import { DatabaseConnections } from "./types";
3
+ export interface SourceDatabase {
4
+ id: string;
5
+ url: string;
6
+ name: string;
7
+ }
3
8
  export declare class DatabaseConnector {
4
- static createConnections(): DatabaseConnections;
9
+ static createConnections(sourceDatabases?: SourceDatabase[]): DatabaseConnections;
5
10
  static createTenantPrismaClient(tenantId: string): PrismaClient;
6
11
  static cleanup(connections: DatabaseConnections): Promise<void>;
7
12
  }
@@ -6,12 +6,32 @@ const pg = require("pg");
6
6
  const dotenv = require("dotenv");
7
7
  dotenv.config();
8
8
  class DatabaseConnector {
9
- static createConnections() {
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
+ });
10
31
  const sourcePool = new pg.Pool({
11
32
  connectionString: process.env.SOURCE_DATABASE_URL,
12
- });
13
- const targetPool = new pg.Pool({
14
- connectionString: process.env.DATABASE_URL,
33
+ max: 20,
34
+ idleTimeoutMillis: 30000,
15
35
  });
16
36
  const sourcePrisma = new client_1.PrismaClient({
17
37
  datasources: {
@@ -20,6 +40,11 @@ class DatabaseConnector {
20
40
  },
21
41
  },
22
42
  });
43
+ const targetPool = new pg.Pool({
44
+ connectionString: process.env.DATABASE_URL,
45
+ max: 20,
46
+ idleTimeoutMillis: 30000,
47
+ });
23
48
  const targetPrisma = new client_1.PrismaClient({
24
49
  datasources: {
25
50
  db: {
@@ -28,10 +53,11 @@ class DatabaseConnector {
28
53
  },
29
54
  });
30
55
  return {
31
- sourcePrisma,
56
+ sourceConnections,
32
57
  targetPrisma,
33
- sourcePool,
34
58
  targetPool,
59
+ sourcePool,
60
+ sourcePrisma,
35
61
  };
36
62
  }
37
63
  static createTenantPrismaClient(tenantId) {
@@ -48,10 +74,20 @@ class DatabaseConnector {
48
74
  });
49
75
  }
50
76
  static async cleanup(connections) {
51
- await connections.sourcePrisma.$disconnect();
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
+ }
52
85
  await connections.targetPrisma.$disconnect();
53
- await connections.sourcePool.end();
54
86
  await connections.targetPool.end();
87
+ if (connections.sourcePrisma)
88
+ await connections.sourcePrisma.$disconnect();
89
+ if (connections.sourcePool)
90
+ await connections.sourcePool.end();
55
91
  }
56
92
  }
57
93
  exports.DatabaseConnector = DatabaseConnector;
@@ -1 +1 @@
1
- {"version":3,"file":"db-connector.js","sourceRoot":"","sources":["../../../src/scripts/data-migration/db-connector.ts"],"names":[],"mappings":";;;AAAA,2CAA8C;AAC9C,yBAAyB;AACzB,iCAAiC;AAGjC,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,MAAa,iBAAiB;IAC5B,MAAM,CAAC,iBAAiB;QAEtB,MAAM,UAAU,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC;YAC7B,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB;SAClD,CAAC,CAAC;QAGH,MAAM,UAAU,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC;YAC7B,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;SAC3C,CAAC,CAAC;QAGH,MAAM,YAAY,GAAG,IAAI,qBAAY,CAAC;YACpC,WAAW,EAAE;gBACX,EAAE,EAAE;oBACF,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB;iBACrC;aACF;SACF,CAAC,CAAC;QAGH,MAAM,YAAY,GAAG,IAAI,qBAAY,CAAC;YACpC,WAAW,EAAE;gBACX,EAAE,EAAE;oBACF,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;iBAC9B;aACF;SACF,CAAC,CAAC;QAEH,OAAO;YACL,YAAY;YACZ,YAAY;YACZ,UAAU;YACV,UAAU;SACX,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,wBAAwB,CAAC,QAAgB;QAC9C,OAAO,IAAI,qBAAY,CAAC;YACtB,WAAW,EAAE;gBACX,EAAE,EAAE;oBACF,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,WAAW,QAAQ,EAAE;iBACtD;aACF;YAED,kBAAkB,EAAE;gBAClB,OAAO,EAAE,MAAM;gBACf,OAAO,EAAE,MAAM;aAChB;SACF,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,WAAgC;QACnD,MAAM,WAAW,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,WAAW,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,WAAW,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;QACnC,MAAM,WAAW,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;IACrC,CAAC;CACF;AA3DD,8CA2DC"}
1
+ {"version":3,"file":"db-connector.js","sourceRoot":"","sources":["../../../src/scripts/data-migration/db-connector.ts"],"names":[],"mappings":"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"}
@@ -3,16 +3,16 @@ export declare class DependencyResolver {
3
3
  private readonly sourcePool;
4
4
  private readonly targetPool;
5
5
  private readonly logger;
6
- private dependencyGraph;
6
+ private readonly visitedTables;
7
+ private readonly temporaryMark;
8
+ private readonly tableOrder;
9
+ private config;
7
10
  constructor(sourcePool: Pool, targetPool: Pool);
11
+ setConfig(config: any): void;
8
12
  analyzeDependencies(): Promise<string[]>;
9
- private getManualDependencies;
10
- private getTables;
11
- private getForeignKeys;
12
- private inferTableFromEnum;
13
- private inferTableFromArrayColumn;
14
- private extractJsonReferences;
15
- private inferTableNameFromColumn;
16
- private parseTableComment;
17
- private assignLevels;
13
+ private getPriorityOrder;
14
+ private visit;
15
+ private getAllTables;
16
+ private getTableDependencies;
17
+ validateDependencies(table: string, dependencies: string[]): Promise<boolean>;
18
18
  }