@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
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
{
|
|
2
|
+
"commonSchema": "public",
|
|
3
|
+
"tenantInfo": {
|
|
4
|
+
"sourceTable": "users",
|
|
5
|
+
"tenantIdColumn": "user_id",
|
|
6
|
+
"providerIdColumn": "provider_id"
|
|
7
|
+
},
|
|
8
|
+
"migrationPriorities": {
|
|
9
|
+
"high": ["countries", "providers", "users", "api_keys"],
|
|
10
|
+
"medium": ["transactions", "charges", "balances"],
|
|
11
|
+
"low": ["invoices", "api_request_logs"]
|
|
12
|
+
},
|
|
13
|
+
"tables": {
|
|
14
|
+
"countries": {
|
|
15
|
+
"type": "public",
|
|
16
|
+
"idField": "id"
|
|
17
|
+
},
|
|
18
|
+
"providers": {
|
|
19
|
+
"type": "public",
|
|
20
|
+
"idField": "provider_id",
|
|
21
|
+
"dependencies": ["countries"]
|
|
22
|
+
},
|
|
23
|
+
"users": {
|
|
24
|
+
"type": "public",
|
|
25
|
+
"idField": "user_id",
|
|
26
|
+
"dependencies": ["providers"]
|
|
27
|
+
},
|
|
28
|
+
"api_keys": {
|
|
29
|
+
"type": "public",
|
|
30
|
+
"idField": "id",
|
|
31
|
+
"dependencies": ["users"]
|
|
32
|
+
},
|
|
33
|
+
"transactions": {
|
|
34
|
+
"type": "public",
|
|
35
|
+
"idField": "id",
|
|
36
|
+
"filterColumn": "provider_id",
|
|
37
|
+
"dependencies": ["users", "providers"]
|
|
38
|
+
},
|
|
39
|
+
"charges": {
|
|
40
|
+
"type": "public",
|
|
41
|
+
"idField": "id",
|
|
42
|
+
"filterColumn": "provider_id",
|
|
43
|
+
"dependencies": ["transactions"]
|
|
44
|
+
},
|
|
45
|
+
"invoices": {
|
|
46
|
+
"type": "public",
|
|
47
|
+
"idField": "id",
|
|
48
|
+
"filterColumn": "provider_id",
|
|
49
|
+
"dependencies": ["transactions", "charges"]
|
|
50
|
+
},
|
|
51
|
+
"balances": {
|
|
52
|
+
"type": "public",
|
|
53
|
+
"idField": "id",
|
|
54
|
+
"filterColumn": "provider_id",
|
|
55
|
+
"dependencies": ["users"]
|
|
56
|
+
},
|
|
57
|
+
"api_request_logs": {
|
|
58
|
+
"type": "public",
|
|
59
|
+
"idField": "id",
|
|
60
|
+
"dependencies": ["api_keys"]
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -7,20 +7,39 @@ interface MigrationOptions {
|
|
|
7
7
|
forceSingleTenant?: boolean;
|
|
8
8
|
configPath?: string;
|
|
9
9
|
}
|
|
10
|
+
interface TableConfig {
|
|
11
|
+
type: "public" | "filteredPublic" | "tenantInfo" | "tenant";
|
|
12
|
+
idField: string;
|
|
13
|
+
filterColumn?: string;
|
|
14
|
+
via?: string;
|
|
15
|
+
providerLink?: string;
|
|
16
|
+
tenantKey?: string;
|
|
17
|
+
dependencies?: string[];
|
|
18
|
+
sourceTable: string;
|
|
19
|
+
targetTable: string;
|
|
20
|
+
}
|
|
21
|
+
interface MigrationConfig {
|
|
22
|
+
commonSchema: string;
|
|
23
|
+
tenantInfo: {
|
|
24
|
+
sourceTable: string;
|
|
25
|
+
tenantIdColumn: string;
|
|
26
|
+
providerIdColumn: string;
|
|
27
|
+
};
|
|
28
|
+
tables: Record<string, TableConfig>;
|
|
29
|
+
}
|
|
10
30
|
export declare class DataMigrationTool {
|
|
11
31
|
private readonly connections;
|
|
32
|
+
private migrationConfig;
|
|
33
|
+
private readonly options;
|
|
12
34
|
private readonly logger;
|
|
13
35
|
private readonly schemaUtils;
|
|
14
36
|
private readonly dataTransformer;
|
|
15
|
-
private readonly foreignKeyManager;
|
|
16
37
|
private readonly batchMigrator;
|
|
38
|
+
private readonly foreignKeyManager;
|
|
17
39
|
private readonly dependencyResolver;
|
|
18
|
-
|
|
19
|
-
private schemaCache;
|
|
20
|
-
private targetSchemaCache;
|
|
21
|
-
constructor(connections: DatabaseConnections);
|
|
40
|
+
constructor(connections: DatabaseConnections, migrationConfig: MigrationConfig, options?: MigrationOptions);
|
|
22
41
|
private loadConfig;
|
|
23
|
-
|
|
42
|
+
migrate(): Promise<void>;
|
|
24
43
|
private migratePublicTablesOnly;
|
|
25
44
|
private validateSourceData;
|
|
26
45
|
private migrateMultiTenantWithConfig;
|
|
@@ -10,39 +10,42 @@ const batch_migrator_1 = require("./batch-migrator");
|
|
|
10
10
|
const foreign_key_manager_1 = require("./foreign-key-manager");
|
|
11
11
|
const dependency_resolver_1 = require("./dependency-resolver");
|
|
12
12
|
class DataMigrationTool {
|
|
13
|
-
constructor(connections) {
|
|
13
|
+
constructor(connections, migrationConfig, options = {}) {
|
|
14
14
|
this.connections = connections;
|
|
15
|
+
this.migrationConfig = migrationConfig;
|
|
16
|
+
this.options = options;
|
|
15
17
|
this.logger = new common_1.Logger("DataMigrationTool");
|
|
16
|
-
this.
|
|
17
|
-
this.
|
|
18
|
-
this.schemaUtils = new schema_utils_1.SchemaUtils(connections.sourcePool, connections.targetPool);
|
|
19
|
-
this.dataTransformer = new data_transformer_1.DataTransformer(this.schemaUtils);
|
|
18
|
+
this.schemaUtils = new schema_utils_1.SchemaUtils(connections);
|
|
19
|
+
this.dataTransformer = new data_transformer_1.DataTransformer(this.schemaUtils, connections.sourcePool, connections);
|
|
20
20
|
this.foreignKeyManager = new foreign_key_manager_1.ForeignKeyManager(connections);
|
|
21
|
+
this.batchMigrator = new batch_migrator_1.BatchMigrator(this.schemaUtils, this.dataTransformer, connections, this.options);
|
|
21
22
|
this.dependencyResolver = new dependency_resolver_1.DependencyResolver(connections.sourcePool, connections.targetPool);
|
|
22
|
-
this.batchMigrator = new batch_migrator_1.BatchMigrator(this.dataTransformer, this.schemaUtils, connections, this.dependencyResolver, this.schemaCache, this.targetSchemaCache);
|
|
23
23
|
}
|
|
24
|
-
loadConfig(configPath =
|
|
24
|
+
loadConfig(configPath = "migration-config.json") {
|
|
25
25
|
const fullPath = path.resolve(process.cwd(), configPath);
|
|
26
26
|
if (!fs.existsSync(fullPath)) {
|
|
27
27
|
throw new Error(`Migration config file not found at: ${fullPath}`);
|
|
28
28
|
}
|
|
29
29
|
try {
|
|
30
|
-
const fileContent = fs.readFileSync(fullPath,
|
|
30
|
+
const fileContent = fs.readFileSync(fullPath, "utf-8");
|
|
31
31
|
this.migrationConfig = JSON.parse(fileContent);
|
|
32
32
|
this.logger.log(`Loaded migration config from: ${fullPath}`);
|
|
33
|
+
this.dependencyResolver.setConfig(this.migrationConfig);
|
|
33
34
|
}
|
|
34
35
|
catch (error) {
|
|
35
36
|
throw new Error(`Error reading or parsing migration config file: ${error.message}`);
|
|
36
37
|
}
|
|
37
|
-
if (!this.migrationConfig.commonSchema ||
|
|
38
|
-
|
|
38
|
+
if (!this.migrationConfig.commonSchema ||
|
|
39
|
+
!this.migrationConfig.tables ||
|
|
40
|
+
!this.migrationConfig.tenantInfo) {
|
|
41
|
+
throw new Error("Invalid migration config structure.");
|
|
39
42
|
}
|
|
40
43
|
}
|
|
41
|
-
async
|
|
44
|
+
async migrate() {
|
|
42
45
|
try {
|
|
43
46
|
this.logger.log("Starting data migration process");
|
|
44
|
-
this.loadConfig(options.configPath);
|
|
45
|
-
if (options.forceSingleTenant || options.publicOnly) {
|
|
47
|
+
this.loadConfig(this.options.configPath);
|
|
48
|
+
if (this.options.forceSingleTenant || this.options.publicOnly) {
|
|
46
49
|
this.logger.log("Public-only migration requested. Migrating only 'public' type tables...");
|
|
47
50
|
await this.migratePublicTablesOnly();
|
|
48
51
|
}
|
|
@@ -60,7 +63,7 @@ class DataMigrationTool {
|
|
|
60
63
|
async migratePublicTablesOnly() {
|
|
61
64
|
const { commonSchema, tables: tablesConfig } = this.migrationConfig;
|
|
62
65
|
const allTablesInOrder = await this.dependencyResolver.analyzeDependencies();
|
|
63
|
-
const publicTablesToMigrate = allTablesInOrder.filter(t => { var _a; return ((_a = tablesConfig[t]) === null || _a === void 0 ? void 0 : _a.type) ===
|
|
66
|
+
const publicTablesToMigrate = allTablesInOrder.filter((t) => { var _a; return ((_a = tablesConfig[t]) === null || _a === void 0 ? void 0 : _a.type) === "public"; });
|
|
64
67
|
this.logger.log(`Migrating public tables to '${commonSchema}' schema: ${publicTablesToMigrate.join(", ")}`);
|
|
65
68
|
if (publicTablesToMigrate.length === 0) {
|
|
66
69
|
this.logger.warn("No tables configured as 'public'. Public-only migration will not process any tables.");
|
|
@@ -74,7 +77,12 @@ class DataMigrationTool {
|
|
|
74
77
|
continue;
|
|
75
78
|
}
|
|
76
79
|
try {
|
|
77
|
-
await this.batchMigrator.migrateEntityDataInBatches(this.
|
|
80
|
+
await this.batchMigrator.migrateEntityDataInBatches(this.migrationConfig.commonSchema, commonSchema, {
|
|
81
|
+
type: "public",
|
|
82
|
+
idField: config.idField,
|
|
83
|
+
sourceTable: tableName,
|
|
84
|
+
targetTable: tableName,
|
|
85
|
+
}, null);
|
|
78
86
|
}
|
|
79
87
|
catch (error) {
|
|
80
88
|
this.logger.error(`Error migrating public table ${tableName}: ${error.message}`);
|
|
@@ -89,15 +97,18 @@ class DataMigrationTool {
|
|
|
89
97
|
try {
|
|
90
98
|
const { sourceTable, providerIdColumn } = this.migrationConfig.tenantInfo;
|
|
91
99
|
const tablesConfig = this.migrationConfig.tables;
|
|
92
|
-
let transactionTableKey =
|
|
93
|
-
let providerTableKey =
|
|
100
|
+
let transactionTableKey = "transactions";
|
|
101
|
+
let providerTableKey = "providers";
|
|
94
102
|
let transactionProviderFk = providerIdColumn;
|
|
95
103
|
for (const key in tablesConfig) {
|
|
96
|
-
if (tablesConfig[key].type ===
|
|
104
|
+
if (tablesConfig[key].type === "filteredPublic" &&
|
|
105
|
+
tablesConfig[key].filterColumn === providerIdColumn &&
|
|
106
|
+
!tablesConfig[key].via) {
|
|
97
107
|
transactionTableKey = key;
|
|
98
108
|
transactionProviderFk = tablesConfig[key].filterColumn;
|
|
99
109
|
}
|
|
100
|
-
if (tablesConfig[key].type ===
|
|
110
|
+
if (tablesConfig[key].type === "public" &&
|
|
111
|
+
tablesConfig[key].idField === providerIdColumn) {
|
|
101
112
|
providerTableKey = key;
|
|
102
113
|
}
|
|
103
114
|
}
|
|
@@ -127,22 +138,37 @@ class DataMigrationTool {
|
|
|
127
138
|
async migrateMultiTenantWithConfig() {
|
|
128
139
|
var _a, _b;
|
|
129
140
|
await this.validateSourceData();
|
|
130
|
-
const { commonSchema, tables: tablesConfig, tenantInfo } = this.migrationConfig;
|
|
141
|
+
const { commonSchema, tables: tablesConfig, tenantInfo, } = this.migrationConfig;
|
|
131
142
|
const allTablesInOrder = await this.dependencyResolver.analyzeDependencies();
|
|
132
|
-
this.logger.log(`
|
|
143
|
+
this.logger.log(`Orden de migración: ${allTablesInOrder.join(" -> ")}`);
|
|
144
|
+
for (const tableName of allTablesInOrder) {
|
|
145
|
+
const config = tablesConfig[tableName];
|
|
146
|
+
if (config === null || config === void 0 ? void 0 : config.dependencies) {
|
|
147
|
+
const valid = await this.dependencyResolver.validateDependencies(tableName, config.dependencies);
|
|
148
|
+
if (!valid) {
|
|
149
|
+
this.logger.warn(`Advertencia: Algunas dependencias para ${tableName} no están disponibles`);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
this.logger.log(`Migrando tablas públicas al esquema '${commonSchema}'...`);
|
|
133
154
|
await this.connections.targetPool.query(`SET session_replication_role = 'replica';`);
|
|
134
|
-
const publicTables = allTablesInOrder.filter(t => { var _a; return ((_a = tablesConfig[t]) === null || _a === void 0 ? void 0 : _a.type) ===
|
|
155
|
+
const publicTables = allTablesInOrder.filter((t) => { var _a; return ((_a = tablesConfig[t]) === null || _a === void 0 ? void 0 : _a.type) === "public"; });
|
|
135
156
|
for (const tableName of publicTables) {
|
|
136
157
|
const config = tablesConfig[tableName];
|
|
137
158
|
if (!config) {
|
|
138
|
-
this.logger.warn(`
|
|
159
|
+
this.logger.warn(`Saltando migración de tabla ${tableName}: No encontrada en configuración`);
|
|
139
160
|
continue;
|
|
140
161
|
}
|
|
141
162
|
try {
|
|
142
|
-
await this.batchMigrator.migrateEntityDataInBatches(this.
|
|
163
|
+
await this.batchMigrator.migrateEntityDataInBatches(this.migrationConfig.commonSchema, commonSchema, {
|
|
164
|
+
type: "public",
|
|
165
|
+
idField: config.idField,
|
|
166
|
+
sourceTable: tableName,
|
|
167
|
+
targetTable: tableName,
|
|
168
|
+
}, null);
|
|
143
169
|
}
|
|
144
170
|
catch (error) {
|
|
145
|
-
this.logger.error(`Error
|
|
171
|
+
this.logger.error(`Error migrando tabla pública ${tableName}: ${error.message}`);
|
|
146
172
|
throw error;
|
|
147
173
|
}
|
|
148
174
|
}
|
|
@@ -153,18 +179,20 @@ class DataMigrationTool {
|
|
|
153
179
|
select: {
|
|
154
180
|
[tenantInfo.tenantIdColumn]: true,
|
|
155
181
|
[tenantInfo.providerIdColumn]: true,
|
|
156
|
-
}
|
|
182
|
+
},
|
|
157
183
|
});
|
|
158
184
|
this.logger.log(`Found ${tenants.length} potential tenants.`);
|
|
159
185
|
const validTenants = new Map();
|
|
160
186
|
this.logger.log("Ensuring tenant schemas exist (if strategy requires them)...");
|
|
161
|
-
let requiresTenantSchemas = Object.values(tablesConfig).some(t => t.type ===
|
|
187
|
+
let requiresTenantSchemas = Object.values(tablesConfig).some((t) => t.type === "tenant");
|
|
162
188
|
if (requiresTenantSchemas) {
|
|
163
|
-
this.logger.log(
|
|
189
|
+
this.logger.log("Tenant-specific schemas are required by config.");
|
|
164
190
|
for (const tenant of tenants) {
|
|
165
191
|
const tenantId = tenant[tenantInfo.tenantIdColumn];
|
|
166
192
|
const providerId = (_a = tenant[tenantInfo.providerIdColumn]) !== null && _a !== void 0 ? _a : null;
|
|
167
|
-
if (tenantId &&
|
|
193
|
+
if (tenantId &&
|
|
194
|
+
typeof tenantId === "string" &&
|
|
195
|
+
tenantId !== commonSchema) {
|
|
168
196
|
await this.schemaUtils.createSchema(tenantId);
|
|
169
197
|
validTenants.set(tenantId, providerId);
|
|
170
198
|
this.logger.log(`Ensured schema exists for tenant: ${tenantId}`);
|
|
@@ -179,16 +207,20 @@ class DataMigrationTool {
|
|
|
179
207
|
for (const tenant of tenants) {
|
|
180
208
|
const tenantId = tenant[tenantInfo.tenantIdColumn];
|
|
181
209
|
const providerId = (_b = tenant[tenantInfo.providerIdColumn]) !== null && _b !== void 0 ? _b : null;
|
|
182
|
-
if (tenantId && typeof tenantId ===
|
|
210
|
+
if (tenantId && typeof tenantId === "string") {
|
|
183
211
|
validTenants.set(tenantId, providerId);
|
|
184
212
|
}
|
|
185
213
|
}
|
|
186
214
|
}
|
|
187
215
|
this.logger.log(`Prepared ${validTenants.size} valid tenants for migration.`);
|
|
188
|
-
const tablesToMigratePerTenant = allTablesInOrder.filter(t => {
|
|
216
|
+
const tablesToMigratePerTenant = allTablesInOrder.filter((t) => {
|
|
217
|
+
var _a, _b;
|
|
218
|
+
return ((_a = tablesConfig[t]) === null || _a === void 0 ? void 0 : _a.type) === "filteredPublic" ||
|
|
219
|
+
((_b = tablesConfig[t]) === null || _b === void 0 ? void 0 : _b.type) === "tenant";
|
|
220
|
+
});
|
|
189
221
|
this.logger.log(`Migrating filtered/tenant tables: ${tablesToMigratePerTenant.join(", ")}`);
|
|
190
222
|
for (const [tenantId, providerId] of validTenants.entries()) {
|
|
191
|
-
this.logger.log(`Starting migration pass related to tenant: ${tenantId} (Filtering by Provider ID: ${providerId !== null && providerId !== void 0 ? providerId :
|
|
223
|
+
this.logger.log(`Starting migration pass related to tenant: ${tenantId} (Filtering by Provider ID: ${providerId !== null && providerId !== void 0 ? providerId : "N/A"})`);
|
|
192
224
|
await this.connections.targetPool.query(`SET session_replication_role = 'replica';`);
|
|
193
225
|
for (const tableName of tablesToMigratePerTenant) {
|
|
194
226
|
const config = tablesConfig[tableName];
|
|
@@ -196,15 +228,23 @@ class DataMigrationTool {
|
|
|
196
228
|
this.logger.warn(`Skipping migration for table ${tableName} for tenant ${tenantId}: Not found in config.`);
|
|
197
229
|
continue;
|
|
198
230
|
}
|
|
199
|
-
const targetSchemaForTable = config.type ===
|
|
231
|
+
const targetSchemaForTable = config.type === "tenant" ? tenantId : commonSchema;
|
|
200
232
|
try {
|
|
201
233
|
const entity = {
|
|
202
234
|
name: tableName,
|
|
203
235
|
idField: config.idField,
|
|
204
236
|
filterColumn: config.filterColumn,
|
|
205
|
-
filterVia: config.via
|
|
237
|
+
filterVia: config.via,
|
|
238
|
+
};
|
|
239
|
+
const tableConfig = {
|
|
240
|
+
type: entity.filterVia ? "filteredPublic" : "tenant",
|
|
241
|
+
idField: entity.idField,
|
|
242
|
+
filterColumn: entity.filterColumn,
|
|
243
|
+
via: entity.filterVia,
|
|
244
|
+
sourceTable: entity.name,
|
|
245
|
+
targetTable: entity.name,
|
|
206
246
|
};
|
|
207
|
-
await this.batchMigrator.migrateEntityDataInBatches(this.
|
|
247
|
+
await this.batchMigrator.migrateEntityDataInBatches(this.migrationConfig.commonSchema, targetSchemaForTable, tableConfig, providerId === null || providerId === void 0 ? void 0 : providerId.toString());
|
|
208
248
|
}
|
|
209
249
|
catch (error) {
|
|
210
250
|
this.logger.error(`Error migrating table ${tableName} into schema ${targetSchemaForTable} (related to tenant ${tenantId}): ${error.message}`);
|
|
@@ -220,12 +260,12 @@ class DataMigrationTool {
|
|
|
220
260
|
try {
|
|
221
261
|
const publicResult = await this.connections.targetPool.query(`SELECT tablename, n_live_tup FROM pg_stat_user_tables WHERE schemaname = $1`, [this.migrationConfig.commonSchema]);
|
|
222
262
|
this.logger.log(`Verification for schema '${this.migrationConfig.commonSchema}':`);
|
|
223
|
-
publicResult.rows.forEach(row => this.logger.log(` Table: ${row.tablename}, Rows: ${row.n_live_tup}`));
|
|
263
|
+
publicResult.rows.forEach((row) => this.logger.log(` Table: ${row.tablename}, Rows: ${row.n_live_tup}`));
|
|
224
264
|
}
|
|
225
265
|
catch (err) {
|
|
226
266
|
this.logger.error(`Error verifying public schema: ${err.message}`);
|
|
227
267
|
}
|
|
228
|
-
let requiresTenantSchemas = Object.values(this.migrationConfig.tables).some(t => t.type ===
|
|
268
|
+
let requiresTenantSchemas = Object.values(this.migrationConfig.tables).some((t) => t.type === "tenant");
|
|
229
269
|
if (requiresTenantSchemas) {
|
|
230
270
|
for (const tenantId of tenantIds) {
|
|
231
271
|
try {
|
|
@@ -235,7 +275,7 @@ class DataMigrationTool {
|
|
|
235
275
|
this.logger.warn(` Schema ${tenantId} has no tables (or pg_stat_user_tables is empty).`);
|
|
236
276
|
}
|
|
237
277
|
else {
|
|
238
|
-
tenantResult.rows.forEach(row => this.logger.log(` Table: ${row.tablename}, Rows: ${row.n_live_tup}`));
|
|
278
|
+
tenantResult.rows.forEach((row) => this.logger.log(` Table: ${row.tablename}, Rows: ${row.n_live_tup}`));
|
|
239
279
|
}
|
|
240
280
|
}
|
|
241
281
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migration-tool.js","sourceRoot":"","sources":["../../../src/scripts/data-migration/migration-tool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"migration-tool.js","sourceRoot":"","sources":["../../../src/scripts/data-migration/migration-tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { DatabaseConnections } from "./types";
|
|
2
|
+
export declare class MultiSourceMigrator {
|
|
3
|
+
private readonly connections;
|
|
4
|
+
private readonly logger;
|
|
5
|
+
private readonly schemaUtils;
|
|
6
|
+
private readonly dataTransformers;
|
|
7
|
+
private readonly dependencyResolvers;
|
|
8
|
+
private readonly batchMigrators;
|
|
9
|
+
constructor(connections: DatabaseConnections);
|
|
10
|
+
migrateAllSources(options?: {
|
|
11
|
+
includeTables?: string[];
|
|
12
|
+
excludeTables?: string[];
|
|
13
|
+
}): Promise<void>;
|
|
14
|
+
private migrateTable;
|
|
15
|
+
private getPrimaryKeyForTable;
|
|
16
|
+
private ensureSchemaExists;
|
|
17
|
+
}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MultiSourceMigrator = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const schema_utils_1 = require("./schema-utils");
|
|
6
|
+
const data_transformer_1 = require("./data-transformer");
|
|
7
|
+
const batch_migrator_1 = require("./batch-migrator");
|
|
8
|
+
const dependency_resolver_1 = require("./dependency-resolver");
|
|
9
|
+
class MultiSourceMigrator {
|
|
10
|
+
constructor(connections) {
|
|
11
|
+
this.connections = connections;
|
|
12
|
+
this.logger = new common_1.Logger("MultiSourceMigrator");
|
|
13
|
+
this.schemaUtils = new Map();
|
|
14
|
+
this.dataTransformers = new Map();
|
|
15
|
+
this.dependencyResolvers = new Map();
|
|
16
|
+
this.batchMigrators = new Map();
|
|
17
|
+
for (const sourceConn of connections.sourceConnections) {
|
|
18
|
+
const sourceId = sourceConn.sourceId;
|
|
19
|
+
const schemaUtil = new schema_utils_1.SchemaUtils(sourceConn.sourcePool, connections.targetPool);
|
|
20
|
+
this.schemaUtils.set(sourceId, schemaUtil);
|
|
21
|
+
const dataTransformer = new data_transformer_1.DataTransformer(schemaUtil);
|
|
22
|
+
this.dataTransformers.set(sourceId, dataTransformer);
|
|
23
|
+
const dependencyResolver = new dependency_resolver_1.DependencyResolver(sourceConn.sourcePool, connections.targetPool);
|
|
24
|
+
this.dependencyResolvers.set(sourceId, dependencyResolver);
|
|
25
|
+
const batchMigrator = new batch_migrator_1.BatchMigrator(schemaUtil, {
|
|
26
|
+
targetPool: connections.targetPool,
|
|
27
|
+
targetPrisma: connections.targetPrisma,
|
|
28
|
+
sourcePool: sourceConn.sourcePool,
|
|
29
|
+
sourcePrisma: sourceConn.sourcePrisma,
|
|
30
|
+
});
|
|
31
|
+
this.batchMigrators.set(sourceId, batchMigrator);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
async migrateAllSources(options = {}) {
|
|
35
|
+
this.logger.log(`Iniciando migración desde ${this.connections.sourceConnections.length} fuentes de datos`);
|
|
36
|
+
for (const sourceConn of this.connections.sourceConnections) {
|
|
37
|
+
const sourceId = sourceConn.sourceId;
|
|
38
|
+
this.logger.log(`Procesando migración desde la fuente: ${sourceId}`);
|
|
39
|
+
try {
|
|
40
|
+
const dependencyResolver = this.dependencyResolvers.get(sourceId);
|
|
41
|
+
if (!dependencyResolver) {
|
|
42
|
+
throw new Error(`No se encontró DependencyResolver para la fuente ${sourceId}`);
|
|
43
|
+
}
|
|
44
|
+
const sortedTables = await dependencyResolver.analyzeDependencies();
|
|
45
|
+
let tablesToMigrate = sortedTables;
|
|
46
|
+
if (options.includeTables && options.includeTables.length > 0) {
|
|
47
|
+
tablesToMigrate = tablesToMigrate.filter((table) => options.includeTables.includes(table));
|
|
48
|
+
}
|
|
49
|
+
if (options.excludeTables && options.excludeTables.length > 0) {
|
|
50
|
+
tablesToMigrate = tablesToMigrate.filter((table) => !options.excludeTables.includes(table));
|
|
51
|
+
}
|
|
52
|
+
this.logger.log(`Migrando ${tablesToMigrate.length} tablas para la fuente ${sourceId}`);
|
|
53
|
+
for (const tableName of tablesToMigrate) {
|
|
54
|
+
await this.migrateTable(sourceId, tableName, 'public');
|
|
55
|
+
}
|
|
56
|
+
this.logger.log(`Migración completada para la fuente: ${sourceId}`);
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
this.logger.error(`Error en la migración de la fuente ${sourceId}: ${error.message}`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
this.logger.log("Migración multi-origen completada");
|
|
63
|
+
}
|
|
64
|
+
async migrateTable(sourceId, tableName, targetSchema) {
|
|
65
|
+
try {
|
|
66
|
+
this.logger.log(`Migrando tabla ${tableName} desde la fuente ${sourceId} al schema ${targetSchema}`);
|
|
67
|
+
const batchMigrator = this.batchMigrators.get(sourceId);
|
|
68
|
+
if (!batchMigrator) {
|
|
69
|
+
throw new Error(`No se encontró BatchMigrator para la fuente ${sourceId}`);
|
|
70
|
+
}
|
|
71
|
+
const entity = {
|
|
72
|
+
name: tableName,
|
|
73
|
+
idField: await this.getPrimaryKeyForTable(sourceId, tableName),
|
|
74
|
+
};
|
|
75
|
+
const prisma = this.connections.targetPrisma;
|
|
76
|
+
await batchMigrator.migrateEntityDataInBatches(prisma, entity, null, 'public');
|
|
77
|
+
this.logger.log(`Migración de tabla ${tableName} completada`);
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
this.logger.error(`Error migrando tabla ${tableName} desde ${sourceId}: ${error.message}`);
|
|
81
|
+
throw error;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
async getPrimaryKeyForTable(sourceId, tableName) {
|
|
85
|
+
var _a;
|
|
86
|
+
const schemaUtil = this.schemaUtils.get(sourceId);
|
|
87
|
+
if (!schemaUtil) {
|
|
88
|
+
throw new Error(`No se encontró SchemaUtils para la fuente ${sourceId}`);
|
|
89
|
+
}
|
|
90
|
+
const query = `
|
|
91
|
+
SELECT a.attname
|
|
92
|
+
FROM pg_index i
|
|
93
|
+
JOIN pg_attribute a ON a.attrelid = i.indrelid AND a.attnum = ANY(i.indkey)
|
|
94
|
+
WHERE i.indrelid = '${tableName}'::regclass AND i.indisprimary;
|
|
95
|
+
`;
|
|
96
|
+
try {
|
|
97
|
+
const result = await ((_a = this.connections.sourceConnections
|
|
98
|
+
.find((conn) => conn.sourceId === sourceId)) === null || _a === void 0 ? void 0 : _a.sourcePool.query(query));
|
|
99
|
+
if (!result || result.rows.length === 0) {
|
|
100
|
+
throw new Error(`No se encontró clave primaria para la tabla ${tableName}`);
|
|
101
|
+
}
|
|
102
|
+
return result.rows[0].attname;
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
this.logger.error(`Error obteniendo clave primaria para ${tableName}: ${error.message}`);
|
|
106
|
+
return "id";
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
async ensureSchemaExists(schemaName) {
|
|
110
|
+
try {
|
|
111
|
+
const checkQuery = `
|
|
112
|
+
SELECT schema_name FROM information_schema.schemata
|
|
113
|
+
WHERE schema_name = $1
|
|
114
|
+
`;
|
|
115
|
+
const result = await this.connections.targetPool.query(checkQuery, [
|
|
116
|
+
schemaName,
|
|
117
|
+
]);
|
|
118
|
+
if (result.rows.length === 0) {
|
|
119
|
+
this.logger.log(`Creando esquema ${schemaName} en la base de datos destino`);
|
|
120
|
+
await this.connections.targetPool.query(`CREATE SCHEMA IF NOT EXISTS "${schemaName}"`);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
catch (error) {
|
|
124
|
+
this.logger.error(`Error al verificar/crear esquema ${schemaName}: ${error.message}`);
|
|
125
|
+
throw error;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
exports.MultiSourceMigrator = MultiSourceMigrator;
|
|
130
|
+
//# sourceMappingURL=multi-source-migrator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multi-source-migrator.js","sourceRoot":"","sources":["../../../src/scripts/data-migration/multi-source-migrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { ColumnSchema } from "./types";
|
|
2
2
|
export declare class SchemaUtils {
|
|
3
|
-
private readonly
|
|
4
|
-
private readonly targetPool;
|
|
3
|
+
private readonly connections;
|
|
5
4
|
private readonly logger;
|
|
6
|
-
constructor(
|
|
5
|
+
constructor(connections: any);
|
|
7
6
|
getTableSchema(tableName: string, dbType: "source" | "target", schema?: string): Promise<ColumnSchema[]>;
|
|
8
7
|
checkSchemaExists(schemaName: string): Promise<boolean>;
|
|
9
8
|
getTargetTables(schemaName: string): Promise<string[]>;
|
|
@@ -15,4 +14,5 @@ export declare class SchemaUtils {
|
|
|
15
14
|
createMissingColumns(tableName: string, schema: string, columns: ColumnSchema[]): Promise<void>;
|
|
16
15
|
createSchema(schemaName: string): Promise<void>;
|
|
17
16
|
private getPublicTables;
|
|
17
|
+
getTableColumns(schema: string, table: string): Promise<ColumnSchema[]>;
|
|
18
18
|
}
|