@javalabs/prisma-client 1.0.26 → 1.0.29

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 (170) hide show
  1. package/.github/CODEOWNERS +1 -1
  2. package/README.md +269 -269
  3. package/migration-config.json +63 -63
  4. package/migration-config.json.bk +95 -95
  5. package/migrations/add_reserved_amount.sql +7 -7
  6. package/package.json +44 -44
  7. package/prisma/migrations/add_uuid_to_transactions.sql +13 -13
  8. package/prisma/schema.prisma +609 -607
  9. package/src/index.ts +23 -23
  10. package/src/prisma-factory.service.ts +40 -40
  11. package/src/prisma.module.ts +9 -9
  12. package/src/prisma.service.ts +16 -16
  13. package/src/scripts/add-uuid-to-table.ts +138 -138
  14. package/src/scripts/create-tenant-schemas.ts +145 -145
  15. package/src/scripts/data-migration/batch-migrator.ts +248 -248
  16. package/src/scripts/data-migration/data-transformer.ts +426 -426
  17. package/src/scripts/data-migration/db-connector.ts +120 -120
  18. package/src/scripts/data-migration/dependency-resolver.ts +174 -174
  19. package/src/scripts/data-migration/entity-discovery.ts +196 -196
  20. package/src/scripts/data-migration/foreign-key-manager.ts +277 -277
  21. package/src/scripts/data-migration/migration-config.json +63 -63
  22. package/src/scripts/data-migration/migration-tool.ts +509 -509
  23. package/src/scripts/data-migration/schema-utils.ts +248 -248
  24. package/src/scripts/data-migration/tenant-migrator.ts +201 -201
  25. package/src/scripts/data-migration/typecast-manager.ts +193 -193
  26. package/src/scripts/data-migration/types.ts +113 -113
  27. package/src/scripts/database-initializer.ts +49 -49
  28. package/src/scripts/drop-database.ts +104 -104
  29. package/src/scripts/dump-source-db.sh +61 -61
  30. package/src/scripts/encrypt-user-passwords.ts +36 -36
  31. package/src/scripts/error-handler.ts +117 -117
  32. package/src/scripts/fix-data-types.ts +241 -241
  33. package/src/scripts/fix-enum-values.ts +357 -357
  34. package/src/scripts/fix-schema-discrepancies.ts +317 -317
  35. package/src/scripts/fix-table-indexes.ts +601 -601
  36. package/src/scripts/migrate-schema-structure.ts +90 -90
  37. package/src/scripts/migrate-uuid.ts +76 -76
  38. package/src/scripts/post-migration-validator.ts +526 -526
  39. package/src/scripts/pre-migration-validator.ts +610 -610
  40. package/src/scripts/reset-database.ts +263 -263
  41. package/src/scripts/retry-failed-migrations.ts +416 -416
  42. package/src/scripts/run-migration.ts +707 -707
  43. package/src/scripts/schema-sync.ts +128 -128
  44. package/src/scripts/sequence-sync-cli.ts +416 -416
  45. package/src/scripts/sequence-synchronizer.ts +127 -127
  46. package/src/scripts/sync-enum-types.ts +170 -170
  47. package/src/scripts/sync-enum-values.ts +563 -563
  48. package/src/scripts/truncate-database.ts +123 -123
  49. package/src/scripts/verify-migration-setup.ts +135 -135
  50. package/tsconfig.json +17 -17
  51. package/dist/index.d.ts +0 -7
  52. package/dist/index.js +0 -34
  53. package/dist/index.js.map +0 -1
  54. package/dist/prisma-factory.service.d.ts +0 -9
  55. package/dist/prisma-factory.service.js +0 -47
  56. package/dist/prisma-factory.service.js.map +0 -1
  57. package/dist/prisma.module.d.ts +0 -2
  58. package/dist/prisma.module.js +0 -23
  59. package/dist/prisma.module.js.map +0 -1
  60. package/dist/prisma.service.d.ts +0 -6
  61. package/dist/prisma.service.js +0 -27
  62. package/dist/prisma.service.js.map +0 -1
  63. package/dist/scripts/add-uuid-to-table.d.ts +0 -8
  64. package/dist/scripts/add-uuid-to-table.js +0 -98
  65. package/dist/scripts/add-uuid-to-table.js.map +0 -1
  66. package/dist/scripts/create-tenant-schemas.d.ts +0 -1
  67. package/dist/scripts/create-tenant-schemas.js +0 -117
  68. package/dist/scripts/create-tenant-schemas.js.map +0 -1
  69. package/dist/scripts/data-migration/batch-migrator.d.ts +0 -20
  70. package/dist/scripts/data-migration/batch-migrator.js +0 -134
  71. package/dist/scripts/data-migration/batch-migrator.js.map +0 -1
  72. package/dist/scripts/data-migration/data-transformer.d.ts +0 -26
  73. package/dist/scripts/data-migration/data-transformer.js +0 -278
  74. package/dist/scripts/data-migration/data-transformer.js.map +0 -1
  75. package/dist/scripts/data-migration/db-connector.d.ts +0 -12
  76. package/dist/scripts/data-migration/db-connector.js +0 -94
  77. package/dist/scripts/data-migration/db-connector.js.map +0 -1
  78. package/dist/scripts/data-migration/dependency-resolver.d.ts +0 -18
  79. package/dist/scripts/data-migration/dependency-resolver.js +0 -132
  80. package/dist/scripts/data-migration/dependency-resolver.js.map +0 -1
  81. package/dist/scripts/data-migration/entity-discovery.d.ts +0 -11
  82. package/dist/scripts/data-migration/entity-discovery.js +0 -152
  83. package/dist/scripts/data-migration/entity-discovery.js.map +0 -1
  84. package/dist/scripts/data-migration/foreign-key-manager.d.ts +0 -18
  85. package/dist/scripts/data-migration/foreign-key-manager.js +0 -160
  86. package/dist/scripts/data-migration/foreign-key-manager.js.map +0 -1
  87. package/dist/scripts/data-migration/migration-tool.d.ts +0 -48
  88. package/dist/scripts/data-migration/migration-tool.js +0 -290
  89. package/dist/scripts/data-migration/migration-tool.js.map +0 -1
  90. package/dist/scripts/data-migration/schema-utils.d.ts +0 -18
  91. package/dist/scripts/data-migration/schema-utils.js +0 -207
  92. package/dist/scripts/data-migration/schema-utils.js.map +0 -1
  93. package/dist/scripts/data-migration/tenant-migrator.d.ts +0 -15
  94. package/dist/scripts/data-migration/tenant-migrator.js +0 -117
  95. package/dist/scripts/data-migration/tenant-migrator.js.map +0 -1
  96. package/dist/scripts/data-migration/typecast-manager.d.ts +0 -9
  97. package/dist/scripts/data-migration/typecast-manager.js +0 -179
  98. package/dist/scripts/data-migration/typecast-manager.js.map +0 -1
  99. package/dist/scripts/data-migration/types.d.ts +0 -100
  100. package/dist/scripts/data-migration/types.js +0 -3
  101. package/dist/scripts/data-migration/types.js.map +0 -1
  102. package/dist/scripts/database-initializer.d.ts +0 -5
  103. package/dist/scripts/database-initializer.js +0 -45
  104. package/dist/scripts/database-initializer.js.map +0 -1
  105. package/dist/scripts/drop-database.d.ts +0 -10
  106. package/dist/scripts/drop-database.js +0 -81
  107. package/dist/scripts/drop-database.js.map +0 -1
  108. package/dist/scripts/encrypt-user-passwords.d.ts +0 -1
  109. package/dist/scripts/encrypt-user-passwords.js +0 -33
  110. package/dist/scripts/encrypt-user-passwords.js.map +0 -1
  111. package/dist/scripts/error-handler.d.ts +0 -12
  112. package/dist/scripts/error-handler.js +0 -82
  113. package/dist/scripts/error-handler.js.map +0 -1
  114. package/dist/scripts/fix-data-types.d.ts +0 -10
  115. package/dist/scripts/fix-data-types.js +0 -185
  116. package/dist/scripts/fix-data-types.js.map +0 -1
  117. package/dist/scripts/fix-enum-values.d.ts +0 -17
  118. package/dist/scripts/fix-enum-values.js +0 -234
  119. package/dist/scripts/fix-enum-values.js.map +0 -1
  120. package/dist/scripts/fix-schema-discrepancies.d.ts +0 -21
  121. package/dist/scripts/fix-schema-discrepancies.js +0 -240
  122. package/dist/scripts/fix-schema-discrepancies.js.map +0 -1
  123. package/dist/scripts/fix-table-indexes.d.ts +0 -26
  124. package/dist/scripts/fix-table-indexes.js +0 -460
  125. package/dist/scripts/fix-table-indexes.js.map +0 -1
  126. package/dist/scripts/migrate-schema-structure.d.ts +0 -1
  127. package/dist/scripts/migrate-schema-structure.js +0 -76
  128. package/dist/scripts/migrate-schema-structure.js.map +0 -1
  129. package/dist/scripts/migrate-uuid.d.ts +0 -2
  130. package/dist/scripts/migrate-uuid.js +0 -57
  131. package/dist/scripts/migrate-uuid.js.map +0 -1
  132. package/dist/scripts/post-migration-validator.d.ts +0 -34
  133. package/dist/scripts/post-migration-validator.js +0 -363
  134. package/dist/scripts/post-migration-validator.js.map +0 -1
  135. package/dist/scripts/pre-migration-validator.d.ts +0 -25
  136. package/dist/scripts/pre-migration-validator.js +0 -491
  137. package/dist/scripts/pre-migration-validator.js.map +0 -1
  138. package/dist/scripts/reset-database.d.ts +0 -17
  139. package/dist/scripts/reset-database.js +0 -202
  140. package/dist/scripts/reset-database.js.map +0 -1
  141. package/dist/scripts/retry-failed-migrations.d.ts +0 -14
  142. package/dist/scripts/retry-failed-migrations.js +0 -301
  143. package/dist/scripts/retry-failed-migrations.js.map +0 -1
  144. package/dist/scripts/run-migration.d.ts +0 -1
  145. package/dist/scripts/run-migration.js +0 -512
  146. package/dist/scripts/run-migration.js.map +0 -1
  147. package/dist/scripts/schema-sync.d.ts +0 -1
  148. package/dist/scripts/schema-sync.js +0 -85
  149. package/dist/scripts/schema-sync.js.map +0 -1
  150. package/dist/scripts/sequence-sync-cli.d.ts +0 -2
  151. package/dist/scripts/sequence-sync-cli.js +0 -287
  152. package/dist/scripts/sequence-sync-cli.js.map +0 -1
  153. package/dist/scripts/sequence-synchronizer.d.ts +0 -8
  154. package/dist/scripts/sequence-synchronizer.js +0 -88
  155. package/dist/scripts/sequence-synchronizer.js.map +0 -1
  156. package/dist/scripts/sync-enum-types.d.ts +0 -13
  157. package/dist/scripts/sync-enum-types.js +0 -139
  158. package/dist/scripts/sync-enum-types.js.map +0 -1
  159. package/dist/scripts/sync-enum-values.d.ts +0 -20
  160. package/dist/scripts/sync-enum-values.js +0 -336
  161. package/dist/scripts/sync-enum-values.js.map +0 -1
  162. package/dist/scripts/truncate-database.d.ts +0 -10
  163. package/dist/scripts/truncate-database.js +0 -100
  164. package/dist/scripts/truncate-database.js.map +0 -1
  165. package/dist/scripts/verify-migration-setup.d.ts +0 -11
  166. package/dist/scripts/verify-migration-setup.js +0 -120
  167. package/dist/scripts/verify-migration-setup.js.map +0 -1
  168. package/dist/tsconfig.tsbuildinfo +0 -1
  169. package/prisma/migrations/add_athena_match_fields.sql +0 -18
  170. package/prisma/migrations/add_bank_receipt_number.sql +0 -9
@@ -1,491 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PreMigrationValidator = void 0;
4
- const pg = require("pg");
5
- const dotenv = require("dotenv");
6
- const common_1 = require("@nestjs/common");
7
- const fs = require("fs");
8
- const path = require("path");
9
- dotenv.config();
10
- class PreMigrationValidator {
11
- constructor(sourceUrl = process.env.SOURCE_DATABASE_URL, targetUrl = process.env.DATABASE_URL) {
12
- this.sourceUrl = sourceUrl;
13
- this.targetUrl = targetUrl;
14
- this.logger = new common_1.Logger('PreMigrationValidator');
15
- this.issues = [];
16
- this.sourcePool = new pg.Pool({
17
- connectionString: this.sourceUrl,
18
- });
19
- this.targetPool = new pg.Pool({
20
- connectionString: this.targetUrl,
21
- });
22
- const reportsDir = path.join(process.cwd(), 'migration-logs');
23
- if (!fs.existsSync(reportsDir)) {
24
- fs.mkdirSync(reportsDir, { recursive: true });
25
- }
26
- const timestamp = new Date().toISOString().replace(/:/g, '-').replace(/\..+/, '');
27
- this.reportPath = path.join(reportsDir, `pre-migration-report-${timestamp}.json`);
28
- }
29
- async validate() {
30
- try {
31
- this.logger.log('Starting pre-migration validation');
32
- await this.validateDatabaseConnections();
33
- await this.validateApiKeys();
34
- await this.validateDataTypeCompatibility();
35
- await this.validateColumnSizes();
36
- await this.validateEnumValues();
37
- await this.validateForeignKeyConstraints();
38
- await this.validateUniqueConstraints();
39
- this.saveReport();
40
- this.logger.log(`Validation completed with ${this.issues.length} issues found`);
41
- if (this.issues.length > 0) {
42
- this.logger.log(`Check the full report at: ${this.reportPath}`);
43
- this.logger.log('Sample issues:');
44
- for (let i = 0; i < Math.min(5, this.issues.length); i++) {
45
- const issue = this.issues[i];
46
- this.logger.log(`- ${issue.type}: ${issue.message}`);
47
- }
48
- }
49
- else {
50
- this.logger.log('No issues found. Migration should proceed smoothly.');
51
- }
52
- return {
53
- success: this.issues.length === 0,
54
- issueCount: this.issues.length,
55
- reportPath: this.reportPath
56
- };
57
- }
58
- catch (error) {
59
- this.logger.error(`Error during validation: ${error.message}`, error.stack);
60
- this.issues.push({
61
- type: 'VALIDATION_ERROR',
62
- message: `Validation process failed: ${error.message}`,
63
- details: error.stack
64
- });
65
- this.saveReport();
66
- return {
67
- success: false,
68
- issueCount: this.issues.length,
69
- reportPath: this.reportPath
70
- };
71
- }
72
- finally {
73
- await this.cleanup();
74
- }
75
- }
76
- async validateDatabaseConnections() {
77
- this.logger.log('Validating database connections');
78
- try {
79
- await this.sourcePool.query('SELECT 1');
80
- this.logger.log('Source database connection successful');
81
- }
82
- catch (error) {
83
- this.logger.error(`Source database connection failed: ${error.message}`);
84
- this.issues.push({
85
- type: 'CONNECTION_ERROR',
86
- source: 'source',
87
- message: `Cannot connect to source database: ${error.message}`
88
- });
89
- }
90
- try {
91
- await this.targetPool.query('SELECT 1');
92
- this.logger.log('Target database connection successful');
93
- }
94
- catch (error) {
95
- this.logger.error(`Target database connection failed: ${error.message}`);
96
- this.issues.push({
97
- type: 'CONNECTION_ERROR',
98
- source: 'target',
99
- message: `Cannot connect to target database: ${error.message}`
100
- });
101
- }
102
- }
103
- async validateApiKeys() {
104
- this.logger.log('Validating API keys');
105
- try {
106
- const result = await this.sourcePool.query(`
107
- SELECT COUNT(*) as count FROM api_keys
108
- `);
109
- const count = parseInt(result.rows[0].count);
110
- if (count === 0) {
111
- this.logger.warn('No API keys found in source database');
112
- this.issues.push({
113
- type: 'DATA_ERROR',
114
- message: 'No API keys found in source database. Migration will not create any tenant schemas.'
115
- });
116
- }
117
- else {
118
- this.logger.log(`Found ${count} API keys in source database`);
119
- }
120
- }
121
- catch (error) {
122
- this.logger.error(`Error validating API keys: ${error.message}`);
123
- this.issues.push({
124
- type: 'VALIDATION_ERROR',
125
- message: `Error validating API keys: ${error.message}`
126
- });
127
- }
128
- }
129
- async validateDataTypeCompatibility() {
130
- this.logger.log('Validating data type compatibility');
131
- try {
132
- const tablesResult = await this.sourcePool.query(`
133
- SELECT table_name
134
- FROM information_schema.tables
135
- WHERE table_schema = 'public'
136
- AND table_type = 'BASE TABLE'
137
- `);
138
- for (const tableRow of tablesResult.rows) {
139
- const tableName = tableRow.table_name;
140
- const sourceColumnsResult = await this.sourcePool.query(`
141
- SELECT column_name, data_type, udt_name
142
- FROM information_schema.columns
143
- WHERE table_schema = 'public'
144
- AND table_name = $1
145
- `, [tableName]);
146
- const targetTableExists = await this.targetPool.query(`
147
- SELECT 1
148
- FROM information_schema.tables
149
- WHERE table_schema = 'public'
150
- AND table_name = $1
151
- LIMIT 1
152
- `, [tableName]);
153
- if (targetTableExists.rows.length === 0) {
154
- continue;
155
- }
156
- const targetColumnsResult = await this.targetPool.query(`
157
- SELECT column_name, data_type, udt_name
158
- FROM information_schema.columns
159
- WHERE table_schema = 'public'
160
- AND table_name = $1
161
- `, [tableName]);
162
- const sourceColumns = sourceColumnsResult.rows.reduce((map, col) => {
163
- map[col.column_name] = col;
164
- return map;
165
- }, {});
166
- const targetColumns = targetColumnsResult.rows.reduce((map, col) => {
167
- map[col.column_name] = col;
168
- return map;
169
- }, {});
170
- for (const columnName in sourceColumns) {
171
- if (targetColumns[columnName]) {
172
- const sourceType = sourceColumns[columnName].data_type;
173
- const targetType = targetColumns[columnName].data_type;
174
- if (sourceType !== targetType) {
175
- const isCompatible = this.areTypesCompatible(sourceType, targetType);
176
- if (!isCompatible) {
177
- this.logger.warn(`Data type mismatch for ${tableName}.${columnName}: ${sourceType} (source) vs ${targetType} (target)`);
178
- this.issues.push({
179
- type: 'TYPE_MISMATCH',
180
- table: tableName,
181
- column: columnName,
182
- sourceType,
183
- targetType,
184
- message: `Data type mismatch for ${tableName}.${columnName}: ${sourceType} (source) vs ${targetType} (target)`
185
- });
186
- }
187
- }
188
- }
189
- }
190
- }
191
- }
192
- catch (error) {
193
- this.logger.error(`Error validating data type compatibility: ${error.message}`);
194
- this.issues.push({
195
- type: 'VALIDATION_ERROR',
196
- message: `Error validating data type compatibility: ${error.message}`
197
- });
198
- }
199
- }
200
- areTypesCompatible(sourceType, targetType) {
201
- const compatibleTypes = [
202
- ['character varying', 'varchar'],
203
- ['character', 'char'],
204
- ['integer', 'int'],
205
- ['boolean', 'bool'],
206
- ['double precision', 'float8'],
207
- ['real', 'float4'],
208
- ['timestamp without time zone', 'timestamp'],
209
- ['timestamp with time zone', 'timestamptz']
210
- ];
211
- if (sourceType === targetType) {
212
- return true;
213
- }
214
- return compatibleTypes.some(pair => (pair[0] === sourceType && pair[1] === targetType) ||
215
- (pair[0] === targetType && pair[1] === sourceType));
216
- }
217
- async validateColumnSizes() {
218
- this.logger.log('Validating column sizes');
219
- try {
220
- const tablesResult = await this.sourcePool.query(`
221
- SELECT table_name
222
- FROM information_schema.tables
223
- WHERE table_schema = 'public'
224
- AND table_type = 'BASE TABLE'
225
- `);
226
- for (const tableRow of tablesResult.rows) {
227
- const tableName = tableRow.table_name;
228
- const sourceColumnsResult = await this.sourcePool.query(`
229
- SELECT column_name, data_type, character_maximum_length
230
- FROM information_schema.columns
231
- WHERE table_schema = 'public'
232
- AND table_name = $1
233
- AND data_type IN ('character varying', 'character', 'varchar', 'char')
234
- AND character_maximum_length IS NOT NULL
235
- `, [tableName]);
236
- const targetTableExists = await this.targetPool.query(`
237
- SELECT 1
238
- FROM information_schema.tables
239
- WHERE table_schema = 'public'
240
- AND table_name = $1
241
- LIMIT 1
242
- `, [tableName]);
243
- if (targetTableExists.rows.length === 0) {
244
- continue;
245
- }
246
- for (const sourceColumn of sourceColumnsResult.rows) {
247
- const columnName = sourceColumn.column_name;
248
- const sourceMaxLength = sourceColumn.character_maximum_length;
249
- const targetColumnResult = await this.targetPool.query(`
250
- SELECT character_maximum_length
251
- FROM information_schema.columns
252
- WHERE table_schema = 'public'
253
- AND table_name = $1
254
- AND column_name = $2
255
- AND data_type IN ('character varying', 'character', 'varchar', 'char')
256
- `, [tableName, columnName]);
257
- if (targetColumnResult.rows.length > 0) {
258
- const targetMaxLength = targetColumnResult.rows[0].character_maximum_length;
259
- if (targetMaxLength < sourceMaxLength) {
260
- this.logger.warn(`Column size mismatch for ${tableName}.${columnName}: ${sourceMaxLength} (source) vs ${targetMaxLength} (target)`);
261
- this.issues.push({
262
- type: 'SIZE_MISMATCH',
263
- table: tableName,
264
- column: columnName,
265
- sourceSize: sourceMaxLength,
266
- targetSize: targetMaxLength,
267
- message: `Column size mismatch for ${tableName}.${columnName}: ${sourceMaxLength} (source) vs ${targetMaxLength} (target). Data may be truncated.`
268
- });
269
- }
270
- }
271
- }
272
- }
273
- }
274
- catch (error) {
275
- this.logger.error(`Error validating column sizes: ${error.message}`);
276
- this.issues.push({
277
- type: 'VALIDATION_ERROR',
278
- message: `Error validating column sizes: ${error.message}`
279
- });
280
- }
281
- }
282
- async validateEnumValues() {
283
- this.logger.log('Validating enum values');
284
- try {
285
- const sourceEnumsResult = await this.sourcePool.query(`
286
- SELECT t.typname AS enum_name
287
- FROM pg_type t
288
- JOIN pg_catalog.pg_namespace n ON n.oid = t.typnamespace
289
- WHERE t.typtype = 'e'
290
- AND n.nspname = 'public'
291
- `);
292
- for (const enumRow of sourceEnumsResult.rows) {
293
- const enumName = enumRow.enum_name;
294
- const sourceEnumValuesResult = await this.sourcePool.query(`
295
- SELECT e.enumlabel
296
- FROM pg_enum e
297
- JOIN pg_type t ON e.enumtypid = t.oid
298
- WHERE t.typname = $1
299
- ORDER BY e.enumsortorder
300
- `, [enumName]);
301
- const sourceEnumValues = sourceEnumValuesResult.rows.map(row => row.enumlabel);
302
- const targetEnumExistsResult = await this.targetPool.query(`
303
- SELECT 1
304
- FROM pg_type t
305
- JOIN pg_catalog.pg_namespace n ON n.oid = t.typnamespace
306
- WHERE t.typtype = 'e'
307
- AND t.typname = $1
308
- AND n.nspname = 'public'
309
- LIMIT 1
310
- `, [enumName]);
311
- if (targetEnumExistsResult.rows.length === 0) {
312
- continue;
313
- }
314
- const targetEnumValuesResult = await this.targetPool.query(`
315
- SELECT e.enumlabel
316
- FROM pg_enum e
317
- JOIN pg_type t ON e.enumtypid = t.oid
318
- WHERE t.typname = $1
319
- ORDER BY e.enumsortorder
320
- `, [enumName]);
321
- const targetEnumValues = targetEnumValuesResult.rows.map(row => row.enumlabel);
322
- for (const sourceValue of sourceEnumValues) {
323
- if (!targetEnumValues.includes(sourceValue)) {
324
- this.logger.warn(`Enum value '${sourceValue}' for type ${enumName} exists in source but not in target`);
325
- this.issues.push({
326
- type: 'ENUM_VALUE_MISSING',
327
- enumType: enumName,
328
- value: sourceValue,
329
- message: `Enum value '${sourceValue}' for type ${enumName} exists in source but not in target. Data migration will fail for records with this value.`
330
- });
331
- }
332
- }
333
- }
334
- }
335
- catch (error) {
336
- this.logger.error(`Error validating enum values: ${error.message}`);
337
- this.issues.push({
338
- type: 'VALIDATION_ERROR',
339
- message: `Error validating enum values: ${error.message}`
340
- });
341
- }
342
- }
343
- async validateForeignKeyConstraints() {
344
- this.logger.log('Validating foreign key constraints');
345
- try {
346
- const foreignKeysResult = await this.sourcePool.query(`
347
- SELECT
348
- tc.table_name,
349
- kcu.column_name,
350
- ccu.table_name AS foreign_table_name,
351
- ccu.column_name AS foreign_column_name
352
- FROM
353
- information_schema.table_constraints AS tc
354
- JOIN information_schema.key_column_usage AS kcu
355
- ON tc.constraint_name = kcu.constraint_name
356
- AND tc.table_schema = kcu.table_schema
357
- JOIN information_schema.constraint_column_usage AS ccu
358
- ON ccu.constraint_name = tc.constraint_name
359
- AND ccu.table_schema = tc.table_schema
360
- WHERE tc.constraint_type = 'FOREIGN KEY'
361
- AND tc.table_schema = 'public'
362
- `);
363
- this.logger.log(`Found ${foreignKeysResult.rows.length} foreign key constraints in source database`);
364
- }
365
- catch (error) {
366
- this.logger.error(`Error validating foreign key constraints: ${error.message}`);
367
- this.issues.push({
368
- type: 'VALIDATION_ERROR',
369
- message: `Error validating foreign key constraints: ${error.message}`
370
- });
371
- }
372
- }
373
- async validateUniqueConstraints() {
374
- this.logger.log('Validating unique constraints...');
375
- try {
376
- const sourceConstraintsQuery = `
377
- SELECT
378
- tc.table_name,
379
- kcu.column_name
380
- FROM
381
- information_schema.table_constraints tc
382
- JOIN information_schema.key_column_usage kcu
383
- ON tc.constraint_name = kcu.constraint_name
384
- WHERE
385
- tc.constraint_type = 'UNIQUE'
386
- AND tc.table_schema = 'public'
387
- `;
388
- const sourceConstraints = await this.sourcePool.query(sourceConstraintsQuery);
389
- for (const constraint of sourceConstraints.rows) {
390
- const { table_name, column_name } = constraint;
391
- try {
392
- const columnExistsQuery = `
393
- SELECT column_name
394
- FROM information_schema.columns
395
- WHERE table_name = $1
396
- AND column_name = $2
397
- AND table_schema = 'public'
398
- `;
399
- const columnExists = await this.targetPool.query(columnExistsQuery, [table_name, column_name]);
400
- if (columnExists.rows.length === 0) {
401
- this.issues.push({
402
- type: 'COLUMN_MISMATCH',
403
- message: `Column "${column_name}" in table "${table_name}" exists in source but not in target`,
404
- severity: 'WARNING',
405
- details: {
406
- table: table_name,
407
- column: column_name,
408
- constraint_type: 'UNIQUE'
409
- }
410
- });
411
- continue;
412
- }
413
- }
414
- catch (error) {
415
- if (error.message.includes('does not exist')) {
416
- this.issues.push({
417
- type: 'COLUMN_MISMATCH',
418
- message: `Error checking column "${column_name}" in table "${table_name}": ${error.message}`,
419
- severity: 'WARNING',
420
- details: {
421
- table: table_name,
422
- column: column_name,
423
- error: error.message
424
- }
425
- });
426
- }
427
- else {
428
- throw error;
429
- }
430
- }
431
- }
432
- this.logger.log('Unique constraints validation completed');
433
- }
434
- catch (error) {
435
- this.issues.push({
436
- type: 'VALIDATION_ERROR',
437
- message: `Error validating unique constraints: ${error.message}`,
438
- severity: 'WARNING',
439
- details: {
440
- error: error.message,
441
- stack: error.stack
442
- }
443
- });
444
- this.logger.warn(`Error during unique constraints validation: ${error.message}`);
445
- }
446
- }
447
- saveReport() {
448
- try {
449
- const report = {
450
- timestamp: new Date().toISOString(),
451
- sourceDatabase: this.sourceUrl,
452
- targetDatabase: this.targetUrl,
453
- issueCount: this.issues.length,
454
- issues: this.issues
455
- };
456
- fs.writeFileSync(this.reportPath, JSON.stringify(report, null, 2), 'utf8');
457
- }
458
- catch (error) {
459
- this.logger.error(`Error saving validation report: ${error.message}`);
460
- }
461
- }
462
- async cleanup() {
463
- this.logger.log('Cleaning up database connections');
464
- await this.sourcePool.end();
465
- await this.targetPool.end();
466
- }
467
- }
468
- exports.PreMigrationValidator = PreMigrationValidator;
469
- if (require.main === module) {
470
- const run = async () => {
471
- try {
472
- const validator = new PreMigrationValidator();
473
- const result = await validator.validate();
474
- if (result.success) {
475
- console.log('Validation successful! No issues found.');
476
- process.exit(0);
477
- }
478
- else {
479
- console.log(`Validation completed with ${result.issueCount} issues found.`);
480
- console.log(`Check the full report at: ${result.reportPath}`);
481
- process.exit(1);
482
- }
483
- }
484
- catch (error) {
485
- console.error('Error:', error.message);
486
- process.exit(1);
487
- }
488
- };
489
- run();
490
- }
491
- //# sourceMappingURL=pre-migration-validator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pre-migration-validator.js","sourceRoot":"","sources":["../../src/scripts/pre-migration-validator.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- export declare class DatabaseResetTool {
2
- private readonly databaseUrl;
3
- private readonly logger;
4
- private readonly pool;
5
- private readonly adminPool;
6
- private readonly prisma;
7
- constructor(databaseUrl: string);
8
- resetDatabase(recreateDb?: boolean): Promise<boolean>;
9
- private dropAllSchemas;
10
- private dropAllPublicTables;
11
- private dropAllCustomTypes;
12
- private getCustomSchemas;
13
- private getPublicTables;
14
- private extractDatabaseName;
15
- private terminateConnections;
16
- private cleanup;
17
- }