@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.
- package/dist/scripts/data-migration/batch-migrator.d.ts +14 -19
- package/dist/scripts/data-migration/batch-migrator.js +98 -297
- package/dist/scripts/data-migration/batch-migrator.js.map +1 -1
- package/dist/scripts/data-migration/data-transformer.d.ts +16 -7
- package/dist/scripts/data-migration/data-transformer.js +169 -133
- package/dist/scripts/data-migration/data-transformer.js.map +1 -1
- package/dist/scripts/data-migration/db-connector.d.ts +6 -1
- package/dist/scripts/data-migration/db-connector.js +44 -8
- package/dist/scripts/data-migration/db-connector.js.map +1 -1
- package/dist/scripts/data-migration/dependency-resolver.d.ts +10 -10
- package/dist/scripts/data-migration/dependency-resolver.js +92 -211
- package/dist/scripts/data-migration/dependency-resolver.js.map +1 -1
- package/dist/scripts/data-migration/foreign-key-manager.d.ts +6 -5
- package/dist/scripts/data-migration/foreign-key-manager.js +108 -18
- package/dist/scripts/data-migration/foreign-key-manager.js.map +1 -1
- package/dist/scripts/data-migration/migration-config.json +63 -0
- package/dist/scripts/data-migration/migration-tool.d.ts +25 -6
- package/dist/scripts/data-migration/migration-tool.js +78 -38
- package/dist/scripts/data-migration/migration-tool.js.map +1 -1
- package/dist/scripts/data-migration/multi-source-migrator.d.ts +17 -0
- package/dist/scripts/data-migration/multi-source-migrator.js +130 -0
- package/dist/scripts/data-migration/multi-source-migrator.js.map +1 -0
- package/dist/scripts/data-migration/schema-utils.d.ts +3 -3
- package/dist/scripts/data-migration/schema-utils.js +62 -19
- package/dist/scripts/data-migration/schema-utils.js.map +1 -1
- package/dist/scripts/data-migration/tenant-migrator.js +9 -2
- package/dist/scripts/data-migration/tenant-migrator.js.map +1 -1
- package/dist/scripts/data-migration/typecast-manager.d.ts +7 -3
- package/dist/scripts/data-migration/typecast-manager.js +169 -25
- package/dist/scripts/data-migration/typecast-manager.js.map +1 -1
- package/dist/scripts/data-migration/types.d.ts +68 -2
- package/dist/scripts/database-initializer.d.ts +5 -0
- package/dist/scripts/database-initializer.js +45 -0
- package/dist/scripts/database-initializer.js.map +1 -0
- package/dist/scripts/fix-table-indexes.d.ts +26 -0
- package/dist/scripts/fix-table-indexes.js +460 -0
- package/dist/scripts/fix-table-indexes.js.map +1 -0
- package/dist/scripts/multi-db-migration.d.ts +1 -0
- package/dist/scripts/multi-db-migration.js +55 -0
- package/dist/scripts/multi-db-migration.js.map +1 -0
- package/dist/scripts/post-migration-validator.d.ts +18 -5
- package/dist/scripts/post-migration-validator.js +61 -39
- package/dist/scripts/post-migration-validator.js.map +1 -1
- package/dist/scripts/run-migration.js +83 -96
- package/dist/scripts/run-migration.js.map +1 -1
- package/dist/scripts/sequence-synchronizer.d.ts +8 -0
- package/dist/scripts/sequence-synchronizer.js +88 -0
- package/dist/scripts/sequence-synchronizer.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/migration-config.json +40 -72
- package/{migration-config-public.json → migration-config.json.bk} +14 -14
- package/package.json +10 -3
- package/prisma/migrations/{20250422001248_add_bank_account_id → 0_init}/migration.sql +269 -47
- package/prisma/migrations/20250505171324_add_bank_owner_name_in_manual_transfer/migration.sql +2 -0
- package/prisma/migrations/20250505173850_add_method_name_in_manual_transfer/migration.sql +2 -0
- package/prisma/migrations/migration_lock.toml +2 -2
- package/prisma/schema.prisma +214 -77
- package/src/scripts/data-migration/batch-migrator.ts +192 -513
- package/src/scripts/data-migration/data-transformer.ts +252 -203
- package/src/scripts/data-migration/db-connector.ts +66 -13
- package/src/scripts/data-migration/dependency-resolver.ts +121 -266
- package/src/scripts/data-migration/foreign-key-manager.ts +214 -32
- package/src/scripts/data-migration/migration-config.json +63 -0
- package/src/scripts/data-migration/migration-tool.ts +377 -225
- package/src/scripts/data-migration/schema-utils.ts +94 -32
- package/src/scripts/data-migration/tenant-migrator.ts +12 -5
- package/src/scripts/data-migration/typecast-manager.ts +186 -31
- package/src/scripts/data-migration/types.ts +78 -5
- package/src/scripts/database-initializer.ts +49 -0
- package/src/scripts/fix-table-indexes.ts +602 -0
- package/src/scripts/post-migration-validator.ts +206 -107
- package/src/scripts/run-migration.ts +140 -124
- package/src/scripts/sequence-synchronizer.ts +127 -0
- package/prisma/migrations/20250422001957_add_bank_account_id_relations/migration.sql +0 -14
- package/src/scripts/dumps/source_dump_20250413_112626.sql +0 -1527
|
@@ -1,25 +1,20 @@
|
|
|
1
|
-
import { PrismaClient } from "@prisma/client";
|
|
2
|
-
import { EntityType, ColumnSchema } from "./types";
|
|
3
|
-
import { DataTransformer } from "./data-transformer";
|
|
4
1
|
import { SchemaUtils } from "./schema-utils";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
2
|
+
import { DataTransformer } from "./data-transformer";
|
|
3
|
+
import { ColumnSchema, DatabaseConnections, MigrationOptions, TableConfig } from "./types";
|
|
7
4
|
export declare class BatchMigrator {
|
|
8
|
-
private readonly dataTransformer;
|
|
9
5
|
private readonly schemaUtils;
|
|
6
|
+
private readonly dataTransformer;
|
|
10
7
|
private readonly connections;
|
|
11
|
-
private readonly
|
|
12
|
-
private readonly
|
|
13
|
-
private readonly targetSchemaCache;
|
|
8
|
+
private readonly options;
|
|
9
|
+
private readonly providerId?;
|
|
14
10
|
private readonly logger;
|
|
15
|
-
private readonly
|
|
16
|
-
constructor(
|
|
17
|
-
|
|
18
|
-
migrateEntityDataInBatches(
|
|
19
|
-
private
|
|
20
|
-
private
|
|
21
|
-
private
|
|
22
|
-
private
|
|
23
|
-
private
|
|
24
|
-
private processRecords;
|
|
11
|
+
private readonly typecastManager;
|
|
12
|
+
constructor(schemaUtils: SchemaUtils, dataTransformer: DataTransformer, connections: DatabaseConnections, options: MigrationOptions, providerId?: string | null);
|
|
13
|
+
validateSchema(sourceColumns: ColumnSchema[], targetColumns: ColumnSchema[]): Promise<void>;
|
|
14
|
+
migrateEntityDataInBatches(sourceSchema: string, targetSchema: string, tableConfig: TableConfig, tenantId: string): Promise<void>;
|
|
15
|
+
private fetchBatch;
|
|
16
|
+
private buildWhereClause;
|
|
17
|
+
private processBatchWithTransaction;
|
|
18
|
+
private transformRecord;
|
|
19
|
+
private insertRecord;
|
|
25
20
|
}
|
|
@@ -2,331 +2,132 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BatchMigrator = void 0;
|
|
4
4
|
const common_1 = require("@nestjs/common");
|
|
5
|
+
const typecast_manager_1 = require("./typecast-manager");
|
|
6
|
+
const BATCH_SIZE = 100;
|
|
7
|
+
const MAX_RETRIES = 3;
|
|
8
|
+
const RETRY_BASE_DELAY = 1000;
|
|
5
9
|
class BatchMigrator {
|
|
6
|
-
constructor(
|
|
7
|
-
this.dataTransformer = dataTransformer;
|
|
10
|
+
constructor(schemaUtils, dataTransformer, connections, options, providerId) {
|
|
8
11
|
this.schemaUtils = schemaUtils;
|
|
12
|
+
this.dataTransformer = dataTransformer;
|
|
9
13
|
this.connections = connections;
|
|
10
|
-
this.
|
|
11
|
-
this.
|
|
12
|
-
this.targetSchemaCache = targetSchemaCache;
|
|
14
|
+
this.options = options;
|
|
15
|
+
this.providerId = providerId;
|
|
13
16
|
this.logger = new common_1.Logger("BatchMigrator");
|
|
14
|
-
this.
|
|
17
|
+
this.typecastManager = new typecast_manager_1.TypecastManager();
|
|
15
18
|
}
|
|
16
|
-
async
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
19
|
+
async validateSchema(sourceColumns, targetColumns) {
|
|
20
|
+
for (const targetColumn of targetColumns) {
|
|
21
|
+
const sourceColumn = sourceColumns.find((col) => col.column_name === targetColumn.column_name);
|
|
22
|
+
if (!sourceColumn) {
|
|
23
|
+
if (targetColumn.is_nullable === "NO") {
|
|
24
|
+
throw new Error(`Required column ${targetColumn.column_name} not found in source schema`);
|
|
25
|
+
}
|
|
26
|
+
this.logger.warn(`Column ${targetColumn.column_name} not found in source schema but is nullable`);
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
if (!this.typecastManager.areTypesCompatible(sourceColumn.data_type, targetColumn.data_type)) {
|
|
30
|
+
throw new Error(`Incompatible data types for column ${targetColumn.column_name}: ` +
|
|
31
|
+
`source ${sourceColumn.data_type} -> target ${targetColumn.data_type}`);
|
|
32
|
+
}
|
|
25
33
|
}
|
|
26
34
|
}
|
|
27
|
-
async migrateEntityDataInBatches(
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
? `Filtering source by Provider ID: ${providerId}`
|
|
36
|
-
: "Migrating all source records."}`);
|
|
35
|
+
async migrateEntityDataInBatches(sourceSchema, targetSchema, tableConfig, tenantId) {
|
|
36
|
+
const sourceColumns = await this.schemaUtils.getTableColumns(sourceSchema, tableConfig.sourceTable);
|
|
37
|
+
const targetColumns = await this.schemaUtils.getTableColumns(targetSchema, tableConfig.targetTable);
|
|
38
|
+
await this.validateSchema(sourceColumns, targetColumns);
|
|
39
|
+
let offset = 0;
|
|
40
|
+
let hasMoreRecords = true;
|
|
41
|
+
let retryCount = 0;
|
|
42
|
+
while (hasMoreRecords) {
|
|
37
43
|
try {
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
if (!targetTableSchema.length) {
|
|
45
|
-
this.logger.warn(`Target table ${tableName} schema '${targetSchema}' not found. Skipping.`);
|
|
46
|
-
return;
|
|
44
|
+
const records = await this.fetchBatch(sourceSchema, tableConfig, offset, BATCH_SIZE);
|
|
45
|
+
if (records.length === 0) {
|
|
46
|
+
hasMoreRecords = false;
|
|
47
|
+
continue;
|
|
47
48
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
const joinCondition = `t."${filterColumn}" = j.id`;
|
|
59
|
-
const providerFilter = `j.provider_id = $1`;
|
|
60
|
-
fromClause = `FROM "${tableName}" t JOIN "${joinTable}" j ON ${joinCondition}`;
|
|
61
|
-
whereClause = `WHERE ${providerFilter}`;
|
|
62
|
-
queryParams = [providerId];
|
|
63
|
-
this.logger.log(`Using JOIN filter: ${fromClause} ${whereClause}`);
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
whereClause = `WHERE t."${filterColumn}" = $1`;
|
|
67
|
-
queryParams = [providerId];
|
|
68
|
-
this.logger.log(`Using direct filter: ${whereClause}`);
|
|
69
|
-
}
|
|
49
|
+
await this.processBatchWithTransaction(records, targetSchema, tableConfig, sourceColumns, targetColumns, tenantId);
|
|
50
|
+
offset += BATCH_SIZE;
|
|
51
|
+
retryCount = 0;
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
if (retryCount < MAX_RETRIES) {
|
|
55
|
+
retryCount++;
|
|
56
|
+
const delay = RETRY_BASE_DELAY * Math.pow(2, retryCount - 1);
|
|
57
|
+
this.logger.warn(`Error processing batch, retrying in ${delay}ms (attempt ${retryCount}/${MAX_RETRIES}): ${error.message}`);
|
|
58
|
+
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
70
59
|
}
|
|
71
60
|
else {
|
|
72
|
-
|
|
73
|
-
}
|
|
74
|
-
selectQuery = `SELECT t.* ${fromClause} ${whereClause}`;
|
|
75
|
-
const sourceData = await this.executeSourceQuery(selectQuery, queryParams);
|
|
76
|
-
const totalRecords = sourceData.rows.length;
|
|
77
|
-
this.logger.log(`Found ${totalRecords} ${tableName} records in source to migrate to '${targetSchema}'.`);
|
|
78
|
-
if (totalRecords === 0) {
|
|
79
|
-
this.logger.log(`No records to migrate for ${tableName} with current filter. Skipping processing.`);
|
|
80
|
-
await this.connections.targetPool.query(`SET session_replication_role = 'origin';`);
|
|
81
|
-
return;
|
|
61
|
+
throw new Error(`Failed to process batch after ${MAX_RETRIES} retries: ${error.message}`);
|
|
82
62
|
}
|
|
83
|
-
const primaryKeyField = idField;
|
|
84
|
-
await this.processRecords(prisma, targetSchema, tableName, primaryKeyField, sourceData.rows, sourceTableSchema, targetTableSchema);
|
|
85
|
-
}
|
|
86
|
-
catch (error) {
|
|
87
|
-
this.logger.error(`Error during migration step for ${tableName} to schema '${targetSchema}': ${error.message}`);
|
|
88
|
-
console.error(`Entity Config:`, JSON.stringify(entity));
|
|
89
|
-
console.error(`Provider ID used for filter:`, providerId);
|
|
90
|
-
throw error;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
catch (error) {
|
|
94
|
-
this.logger.error(`Error preparing migration for ${entity.name} to schema '${targetSchema}': ${error.message}`);
|
|
95
|
-
throw error;
|
|
96
|
-
}
|
|
97
|
-
finally {
|
|
98
|
-
try {
|
|
99
|
-
await this.connections.targetPool.query(`SET session_replication_role = 'origin';`);
|
|
100
|
-
}
|
|
101
|
-
catch (finallyError) {
|
|
102
|
-
this.logger.error(`Failed to reset session_replication_role: ${finallyError.message}`);
|
|
103
63
|
}
|
|
104
64
|
}
|
|
105
65
|
}
|
|
106
|
-
async
|
|
107
|
-
const
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
ON CONFLICT DO NOTHING;
|
|
118
|
-
`);
|
|
119
|
-
this.logger.log(`Attempted to copy initial migration record to schema '${schemaName}'.`);
|
|
120
|
-
}
|
|
121
|
-
catch (migrationError) {
|
|
122
|
-
this.logger.warn(`Could not copy baseline migration to schema '${schemaName}': ${migrationError.message}`);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
66
|
+
async fetchBatch(sourceSchema, tableConfig, offset, limit) {
|
|
67
|
+
const query = `
|
|
68
|
+
SELECT *
|
|
69
|
+
FROM "${sourceSchema}"."${tableConfig.sourceTable}"
|
|
70
|
+
${this.buildWhereClause(tableConfig)}
|
|
71
|
+
ORDER BY "${tableConfig.idField}"
|
|
72
|
+
LIMIT ${limit}
|
|
73
|
+
OFFSET ${offset}
|
|
74
|
+
`;
|
|
75
|
+
const result = await this.connections.sourcePool.query(query);
|
|
76
|
+
return result.rows;
|
|
125
77
|
}
|
|
126
|
-
|
|
127
|
-
const
|
|
128
|
-
if (
|
|
129
|
-
|
|
130
|
-
this.schemaCache[cacheKey] = await this.schemaUtils.getTableSchema(tableName, "source", "public");
|
|
78
|
+
buildWhereClause(tableConfig) {
|
|
79
|
+
const conditions = [];
|
|
80
|
+
if (this.providerId) {
|
|
81
|
+
conditions.push(`"${tableConfig.providerLink}" = '${this.providerId}'`);
|
|
131
82
|
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
async getTargetSchema(schema, tableName) {
|
|
135
|
-
const cacheKey = `${schema}.${tableName}`;
|
|
136
|
-
if (!this.targetSchemaCache[cacheKey]) {
|
|
137
|
-
this.logger.debug(`Cache miss for target schema: ${cacheKey}`);
|
|
138
|
-
this.targetSchemaCache[cacheKey] = await this.schemaUtils.getTableSchema(tableName, "target", schema);
|
|
83
|
+
if (tableConfig.filterColumn) {
|
|
84
|
+
conditions.push(`"${tableConfig.filterColumn}" IS NOT NULL`);
|
|
139
85
|
}
|
|
140
|
-
return
|
|
86
|
+
return conditions.length > 0 ? `WHERE ${conditions.join(" AND ")}` : "";
|
|
141
87
|
}
|
|
142
|
-
async
|
|
143
|
-
|
|
88
|
+
async processBatchWithTransaction(records, targetSchema, tableConfig, sourceColumns, targetColumns, tenantId) {
|
|
89
|
+
const client = await this.connections.targetPool.connect();
|
|
144
90
|
try {
|
|
145
|
-
|
|
146
|
-
const
|
|
147
|
-
|
|
148
|
-
|
|
91
|
+
await client.query("BEGIN");
|
|
92
|
+
for (const record of records) {
|
|
93
|
+
const transformedRecord = await this.transformRecord(record, sourceColumns, targetColumns, tenantId);
|
|
94
|
+
await this.insertRecord(client, targetSchema, tableConfig.targetTable, transformedRecord);
|
|
95
|
+
}
|
|
96
|
+
await client.query("COMMIT");
|
|
149
97
|
}
|
|
150
98
|
catch (error) {
|
|
151
|
-
|
|
152
|
-
this.logger.error(`Query was: ${query}`);
|
|
153
|
-
this.logger.error(`Params were: ${JSON.stringify(params)}`);
|
|
99
|
+
await client.query("ROLLBACK");
|
|
154
100
|
throw error;
|
|
155
101
|
}
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
var _a;
|
|
159
|
-
try {
|
|
160
|
-
const result = await this.connections.targetPool.query(`
|
|
161
|
-
SELECT kcu.column_name
|
|
162
|
-
FROM information_schema.table_constraints tc
|
|
163
|
-
JOIN information_schema.key_column_usage kcu
|
|
164
|
-
ON tc.constraint_name = kcu.constraint_name
|
|
165
|
-
AND tc.table_schema = kcu.table_schema
|
|
166
|
-
WHERE tc.constraint_type = 'PRIMARY KEY'
|
|
167
|
-
AND tc.table_schema = $1
|
|
168
|
-
AND tc.table_name = $2
|
|
169
|
-
`, [schemaName, tableName]);
|
|
170
|
-
return ((_a = result.rows[0]) === null || _a === void 0 ? void 0 : _a.column_name) || null;
|
|
171
|
-
}
|
|
172
|
-
catch (error) {
|
|
173
|
-
this.logger.error(`Error getting primary key for ${schemaName}.${tableName}: ${error.message}`);
|
|
174
|
-
return null;
|
|
102
|
+
finally {
|
|
103
|
+
client.release();
|
|
175
104
|
}
|
|
176
105
|
}
|
|
177
|
-
async
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
try {
|
|
185
|
-
this.logger.debug(`Processing record ${recordId !== null && recordId !== void 0 ? recordId : "(no id found)"} for ${targetSchema}.${tableName}`);
|
|
186
|
-
if (!record || Object.keys(record).length === 0) {
|
|
187
|
-
this.logger.warn(`Empty record found for ${tableName}, skipping`);
|
|
188
|
-
continue;
|
|
189
|
-
}
|
|
190
|
-
if (!recordId) {
|
|
191
|
-
this.logger.warn(`Record missing configured ID field '${idField}' in source data, skipping: ${JSON.stringify(record)}`);
|
|
192
|
-
continue;
|
|
193
|
-
}
|
|
194
|
-
const transformedData = await this.dataTransformer.transformRecord(record, sourceSchema, targetSchemaInfo, targetSchema);
|
|
195
|
-
const processedData = Object.entries(transformedData).reduce((acc, [key, value]) => {
|
|
196
|
-
const columnSchema = targetSchemaInfo.find((col) => col.column_name === key);
|
|
197
|
-
if (!columnSchema)
|
|
198
|
-
return acc;
|
|
199
|
-
const columnName = `"${columnSchema.column_name}"`;
|
|
200
|
-
const escapeValue = (val) => {
|
|
201
|
-
if (val === null || val === undefined)
|
|
202
|
-
return "NULL";
|
|
203
|
-
if (typeof val === "boolean")
|
|
204
|
-
return val ? "TRUE" : "FALSE";
|
|
205
|
-
if (typeof val === "number")
|
|
206
|
-
return String(val);
|
|
207
|
-
return String(val).replace(/'/g, "''").replace(/\\/g, "");
|
|
208
|
-
};
|
|
209
|
-
if (value === null || value === undefined) {
|
|
210
|
-
acc[columnName] = "NULL";
|
|
211
|
-
return acc;
|
|
212
|
-
}
|
|
213
|
-
if (typeof value === "object" &&
|
|
214
|
-
value !== null &&
|
|
215
|
-
value["needsEnumCast"]) {
|
|
216
|
-
const enumValue = value;
|
|
217
|
-
const schemaPrefix = targetSchema === "public" ? '"public".' : `"${targetSchema}".`;
|
|
218
|
-
const quotedEnumType = `"${enumValue.enumType}"`;
|
|
219
|
-
const escapedEnumValue = escapeValue(enumValue.value);
|
|
220
|
-
acc[columnName] = `CAST(E'${escapedEnumValue}' AS ${schemaPrefix}${quotedEnumType})`;
|
|
221
|
-
return acc;
|
|
222
|
-
}
|
|
223
|
-
let targetType = columnSchema.data_type.toLowerCase();
|
|
224
|
-
let udtName = columnSchema.udt_name;
|
|
225
|
-
let sqlValue;
|
|
226
|
-
let requiresQuotes = false;
|
|
227
|
-
if ([
|
|
228
|
-
"text",
|
|
229
|
-
"varchar",
|
|
230
|
-
"character varying",
|
|
231
|
-
"char",
|
|
232
|
-
"timestamp with time zone",
|
|
233
|
-
"timestamptz",
|
|
234
|
-
"timestamp without time zone",
|
|
235
|
-
"timestamp",
|
|
236
|
-
"date",
|
|
237
|
-
"uuid",
|
|
238
|
-
"json",
|
|
239
|
-
"jsonb",
|
|
240
|
-
].includes(targetType) ||
|
|
241
|
-
targetType.includes("enum") ||
|
|
242
|
-
(targetType === "user-defined" && (udtName === null || udtName === void 0 ? void 0 : udtName.startsWith("enum_")))) {
|
|
243
|
-
requiresQuotes = true;
|
|
244
|
-
}
|
|
245
|
-
const escaped = escapeValue(value);
|
|
246
|
-
if (escaped === "NULL") {
|
|
247
|
-
sqlValue = "NULL";
|
|
248
|
-
}
|
|
249
|
-
else if (requiresQuotes) {
|
|
250
|
-
sqlValue = `E'${escaped}'`;
|
|
251
|
-
}
|
|
252
|
-
else {
|
|
253
|
-
sqlValue = escaped;
|
|
254
|
-
}
|
|
255
|
-
let castExpression = "";
|
|
256
|
-
if (targetType.includes("timestamp"))
|
|
257
|
-
castExpression = "::timestamp with time zone";
|
|
258
|
-
else if (targetType === "date")
|
|
259
|
-
castExpression = "::date";
|
|
260
|
-
else if (targetType === "integer" ||
|
|
261
|
-
targetType === "int" ||
|
|
262
|
-
targetType === "int4")
|
|
263
|
-
castExpression = "::integer";
|
|
264
|
-
else if (targetType === "bigint" || targetType === "int8")
|
|
265
|
-
castExpression = "::bigint";
|
|
266
|
-
else if (targetType === "smallint" || targetType === "int2")
|
|
267
|
-
castExpression = "::smallint";
|
|
268
|
-
else if (targetType === "numeric" || targetType === "decimal")
|
|
269
|
-
castExpression = "::numeric";
|
|
270
|
-
else if (targetType === "real" || targetType === "float4")
|
|
271
|
-
castExpression = "::real";
|
|
272
|
-
else if (targetType === "double precision" ||
|
|
273
|
-
targetType === "float8")
|
|
274
|
-
castExpression = "::double precision";
|
|
275
|
-
else if (targetType === "boolean" || targetType === "bool")
|
|
276
|
-
castExpression = "::boolean";
|
|
277
|
-
else if (targetType === "json" || targetType === "jsonb")
|
|
278
|
-
castExpression = `::${targetType}`;
|
|
279
|
-
else if (targetType === "uuid")
|
|
280
|
-
castExpression = "::uuid";
|
|
281
|
-
else if (targetType === "text" || targetType.includes("char"))
|
|
282
|
-
castExpression = "::text";
|
|
283
|
-
else if (targetType === "user-defined" &&
|
|
284
|
-
(udtName === null || udtName === void 0 ? void 0 : udtName.startsWith("enum_"))) {
|
|
285
|
-
const schemaPrefix = targetSchema === "public" ? '"public".' : `"${targetSchema}".`;
|
|
286
|
-
castExpression = `::${schemaPrefix}"${udtName}"`;
|
|
287
|
-
}
|
|
288
|
-
acc[columnName] = `${sqlValue}${castExpression}`;
|
|
289
|
-
return acc;
|
|
290
|
-
}, {});
|
|
291
|
-
const validProcessedData = Object.entries(processedData).reduce((acc, [key, val]) => {
|
|
292
|
-
if (val !== undefined &&
|
|
293
|
-
val !== "NULL" &&
|
|
294
|
-
val !== "E''" &&
|
|
295
|
-
val !== "E'undefined'" &&
|
|
296
|
-
val !== "E'null'") {
|
|
297
|
-
acc[key] = val;
|
|
298
|
-
}
|
|
299
|
-
return acc;
|
|
300
|
-
}, {});
|
|
301
|
-
const columns = Object.keys(validProcessedData);
|
|
302
|
-
const valuesString = Object.values(validProcessedData).join(", ");
|
|
303
|
-
if (columns.length === 0) {
|
|
304
|
-
this.logger.warn(`Record ${recordId} for ${tableName} resulted in no valid columns to insert/update after processing. Skipping.`);
|
|
305
|
-
continue;
|
|
306
|
-
}
|
|
307
|
-
const updateSetClauses = columns
|
|
308
|
-
.filter((col) => col !== `"${idField}"`)
|
|
309
|
-
.map((col) => `${col} = EXCLUDED.${col}`)
|
|
310
|
-
.join(", ");
|
|
311
|
-
const quotedSchemaTable = `"${targetSchema}"."${tableName}"`;
|
|
312
|
-
const quotedIdField = `"${idField}"`;
|
|
313
|
-
const conflictClause = updateSetClauses
|
|
314
|
-
? `ON CONFLICT (${quotedIdField}) DO UPDATE SET ${updateSetClauses}`
|
|
315
|
-
: `ON CONFLICT (${quotedIdField}) DO NOTHING`;
|
|
316
|
-
const query = `
|
|
317
|
-
INSERT INTO ${quotedSchemaTable} (${columns.join(", ")})
|
|
318
|
-
VALUES (${valuesString})
|
|
319
|
-
${conflictClause}
|
|
320
|
-
`;
|
|
321
|
-
this.logger.debug(`Executing Upsert: ${query.replace(/\s\s+/g, " ")}`);
|
|
322
|
-
await this.connections.targetPool.query(query);
|
|
323
|
-
}
|
|
324
|
-
catch (error) {
|
|
325
|
-
this.logger.error(`Error processing record ID '${recordId !== null && recordId !== void 0 ? recordId : "(unknown)"}' for ${targetSchema}.${tableName}: ${error.message}`);
|
|
326
|
-
this.logger.error(`Record data: ${JSON.stringify(record)}`);
|
|
327
|
-
throw error;
|
|
106
|
+
async transformRecord(record, sourceColumns, targetColumns, tenantId) {
|
|
107
|
+
const transformedRecord = {};
|
|
108
|
+
for (const targetColumn of targetColumns) {
|
|
109
|
+
const sourceColumn = sourceColumns.find((col) => col.column_name === targetColumn.column_name);
|
|
110
|
+
if (!sourceColumn) {
|
|
111
|
+
transformedRecord[targetColumn.column_name] = null;
|
|
112
|
+
continue;
|
|
328
113
|
}
|
|
114
|
+
const value = record[targetColumn.column_name];
|
|
115
|
+
transformedRecord[targetColumn.column_name] =
|
|
116
|
+
await this.dataTransformer.transformColumnValue(value, targetColumn.column_name, Object.assign(Object.assign({}, targetColumn), { source_type: sourceColumn.data_type }), tenantId);
|
|
329
117
|
}
|
|
118
|
+
return transformedRecord;
|
|
119
|
+
}
|
|
120
|
+
async insertRecord(client, schema, table, record) {
|
|
121
|
+
const columns = Object.keys(record);
|
|
122
|
+
const values = Object.values(record);
|
|
123
|
+
const placeholders = values.map((_, i) => `$${i + 1}`).join(", ");
|
|
124
|
+
const query = `
|
|
125
|
+
INSERT INTO "${schema}"."${table}"
|
|
126
|
+
(${columns.map((col) => `"${col}"`).join(", ")})
|
|
127
|
+
VALUES (${placeholders})
|
|
128
|
+
ON CONFLICT DO NOTHING
|
|
129
|
+
`;
|
|
130
|
+
await client.query(query, values);
|
|
330
131
|
}
|
|
331
132
|
}
|
|
332
133
|
exports.BatchMigrator = BatchMigrator;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch-migrator.js","sourceRoot":"","sources":["../../../src/scripts/data-migration/batch-migrator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"batch-migrator.js","sourceRoot":"","sources":["../../../src/scripts/data-migration/batch-migrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,26 @@
|
|
|
1
1
|
import { ColumnSchema, EnumCastValue } from "./types";
|
|
2
2
|
import { SchemaUtils } from "./schema-utils";
|
|
3
|
+
import { DatabaseConnections } from "./types";
|
|
3
4
|
export declare class DataTransformer {
|
|
4
|
-
readonly schemaUtils: SchemaUtils;
|
|
5
5
|
private readonly logger;
|
|
6
|
-
private
|
|
7
|
-
private
|
|
8
|
-
|
|
9
|
-
|
|
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;
|
|
10
16
|
transformToNumeric(value: any): number | null;
|
|
11
17
|
private getDefaultEnumValue;
|
|
12
18
|
prepareEnumValue(tenantId: string, enumType: string, value: string): Promise<EnumCastValue | null>;
|
|
13
|
-
transformColumnValue(value: any, columnName: string, targetColumn: ColumnSchema
|
|
19
|
+
transformColumnValue(value: any, columnName: string, targetColumn: ColumnSchema & {
|
|
20
|
+
source_type?: string;
|
|
21
|
+
}, tenantId: string): Promise<any>;
|
|
22
|
+
private getDefaultValue;
|
|
14
23
|
private extractEnumValueFromObject;
|
|
15
|
-
private
|
|
24
|
+
private handleEnumType;
|
|
16
25
|
transformRecord(record: any, sourceSchema: ColumnSchema[], targetSchema: ColumnSchema[], tenantId: string): Promise<any>;
|
|
17
26
|
}
|