@zintrust/d1-migrator 1.8.6 → 1.8.7
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataMigrator.d.ts","sourceRoot":"","sources":["../../src/cli/DataMigrator.ts"],"names":[],"mappings":"AACA;;;GAGG;AAWH,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,eAAe,CAAC,cAAc,CAAC,CAAC;IACxC,gBAAgB,EAAE,MAAM,CAAC;IACzB,sBAAsB,CAAC,EAAE,eAAe,CAAC,wBAAwB,CAAC,CAAC;IACnE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,IAAI,GAAG,WAAW,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,UAAU,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACxE,CAAC;AAEF,KAAK,0BAA0B,GAAG;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;
|
|
1
|
+
{"version":3,"file":"DataMigrator.d.ts","sourceRoot":"","sources":["../../src/cli/DataMigrator.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/DataMigrator.js
CHANGED
|
@@ -55,6 +55,33 @@ const getErrorChainMessages = (error) => {
|
|
|
55
55
|
}
|
|
56
56
|
return [...new Set(messages)];
|
|
57
57
|
};
|
|
58
|
+
const describeDriverError = (error) => {
|
|
59
|
+
if (error === null || typeof error !== 'object') {
|
|
60
|
+
return undefined;
|
|
61
|
+
}
|
|
62
|
+
const details = error;
|
|
63
|
+
const parts = [
|
|
64
|
+
typeof details.code === 'string' ? `code=${details.code}` : undefined,
|
|
65
|
+
typeof details.errno === 'number' ? `errno=${details.errno}` : undefined,
|
|
66
|
+
typeof details.sqlState === 'string' ? `sqlState=${details.sqlState}` : undefined,
|
|
67
|
+
typeof details.sqlMessage === 'string' ? `sqlMessage=${details.sqlMessage}` : undefined,
|
|
68
|
+
typeof details.fatal === 'boolean' ? `fatal=${details.fatal}` : undefined,
|
|
69
|
+
].filter((part) => part !== undefined);
|
|
70
|
+
return parts.length > 0 ? parts.join(', ') : undefined;
|
|
71
|
+
};
|
|
72
|
+
const logDetailedError = (label, error) => {
|
|
73
|
+
const driverDetails = describeDriverError(error);
|
|
74
|
+
if (driverDetails !== undefined) {
|
|
75
|
+
Logger.error(`${label} driver details: ${driverDetails}`);
|
|
76
|
+
}
|
|
77
|
+
if (error instanceof Error && typeof error.stack === 'string' && error.stack.trim() !== '') {
|
|
78
|
+
Logger.error(`${label} stack: ${error.stack}`);
|
|
79
|
+
}
|
|
80
|
+
const cause = getErrorCause(error);
|
|
81
|
+
if (cause !== undefined) {
|
|
82
|
+
logDetailedError(`${label} cause`, cause);
|
|
83
|
+
}
|
|
84
|
+
};
|
|
58
85
|
const describePasswordForLog = (password) => {
|
|
59
86
|
const hasSpecialCharacters = /[^a-zA-Z0-9]/.test(password);
|
|
60
87
|
const containsBang = password.includes('!');
|
|
@@ -223,6 +250,7 @@ export const DataMigrator = Object.freeze({
|
|
|
223
250
|
catch (error) {
|
|
224
251
|
const errorChain = getErrorChainMessages(error);
|
|
225
252
|
Logger.error(`Data migration failed: ${errorChain.join(' -> ')}`);
|
|
253
|
+
logDetailedError('Data migration failure', error);
|
|
226
254
|
Logger.error('Data migration failure details:', error);
|
|
227
255
|
throw error;
|
|
228
256
|
}
|
|
@@ -244,6 +272,7 @@ export const DataMigrator = Object.freeze({
|
|
|
244
272
|
catch (error) {
|
|
245
273
|
const errorChain = getErrorChainMessages(error);
|
|
246
274
|
Logger.error(`Source database connection failed: ${errorChain.join(' -> ')}`);
|
|
275
|
+
logDetailedError('Source database connection failure', error);
|
|
247
276
|
Logger.error('Source database connection failure details:', error);
|
|
248
277
|
throw error;
|
|
249
278
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MigrateToD1Command.d.ts","sourceRoot":"","sources":["../../src/cli/MigrateToD1Command.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAe,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,OAAO,KAAK,EAAE,eAAe,EAA0B,MAAM,UAAU,CAAC;AAOxE,KAAK,iBAAiB,GAAG;IACvB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,IAAI,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CAC/B,CAAC;
|
|
1
|
+
{"version":3,"file":"MigrateToD1Command.d.ts","sourceRoot":"","sources":["../../src/cli/MigrateToD1Command.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAe,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,OAAO,KAAK,EAAE,eAAe,EAA0B,MAAM,UAAU,CAAC;AAOxE,KAAK,iBAAiB,GAAG;IACvB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,IAAI,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CAC/B,CAAC;AAgwBF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,iBA8G/B,CAAC;AAEH;;GAEG;AACH,iBAAe,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAetE;AAED;;GAEG;AACH,iBAAe,kBAAkB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAmGxE;AAED;;GAEG;AACH,iBAAe,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAkGtE;AAED;;GAEG;AACH,iBAAS,cAAc,CAAC,MAAM,EAAE,eAAe,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CA2BrF;AAGD,eAAO,MAAM,iBAAiB;;;;;EAK5B,CAAC"}
|
|
@@ -278,6 +278,33 @@ const getErrorChainMessages = (error) => {
|
|
|
278
278
|
}
|
|
279
279
|
return uniq(messages);
|
|
280
280
|
};
|
|
281
|
+
const describeDriverError = (error) => {
|
|
282
|
+
if (error === null || typeof error !== 'object') {
|
|
283
|
+
return undefined;
|
|
284
|
+
}
|
|
285
|
+
const details = error;
|
|
286
|
+
const parts = [
|
|
287
|
+
typeof details.code === 'string' ? `code=${details.code}` : undefined,
|
|
288
|
+
typeof details.errno === 'number' ? `errno=${details.errno}` : undefined,
|
|
289
|
+
typeof details.sqlState === 'string' ? `sqlState=${details.sqlState}` : undefined,
|
|
290
|
+
typeof details.sqlMessage === 'string' ? `sqlMessage=${details.sqlMessage}` : undefined,
|
|
291
|
+
typeof details.fatal === 'boolean' ? `fatal=${details.fatal}` : undefined,
|
|
292
|
+
].filter((part) => part !== undefined);
|
|
293
|
+
return parts.length > 0 ? parts.join(', ') : undefined;
|
|
294
|
+
};
|
|
295
|
+
const logDetailedError = (label, error) => {
|
|
296
|
+
const driverDetails = describeDriverError(error);
|
|
297
|
+
if (driverDetails !== undefined) {
|
|
298
|
+
Logger.error(`${label} driver details: ${driverDetails}`);
|
|
299
|
+
}
|
|
300
|
+
if (error instanceof Error && typeof error.stack === 'string' && error.stack.trim() !== '') {
|
|
301
|
+
Logger.error(`${label} stack: ${error.stack}`);
|
|
302
|
+
}
|
|
303
|
+
const cause = getErrorCause(error);
|
|
304
|
+
if (cause !== undefined) {
|
|
305
|
+
logDetailedError(`${label} cause`, cause);
|
|
306
|
+
}
|
|
307
|
+
};
|
|
281
308
|
const logSourceConnectionDiagnostics = (sourceDriver, sourceConnection, origin, originalValue) => {
|
|
282
309
|
Logger.info(`[d1-migrator] Source connection origin: ${origin}`);
|
|
283
310
|
Logger.info(`[d1-migrator] Source connection driver: ${sourceDriver}`);
|
|
@@ -576,6 +603,7 @@ export const MigrateToD1Command = BaseCommand.create({
|
|
|
576
603
|
catch (error) {
|
|
577
604
|
const errorChain = getErrorChainMessages(error);
|
|
578
605
|
Logger.error(`Migration failed: ${errorChain.join(' -> ')}`);
|
|
606
|
+
logDetailedError('Migration failure', error);
|
|
579
607
|
Logger.error('Migration failure details:', error);
|
|
580
608
|
throw ErrorFactory.createValidationError(`Migration failed: ${errorChain[0] ?? getErrorMessage(error)}`, error);
|
|
581
609
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaAnalyzer.d.ts","sourceRoot":"","sources":["../../src/cli/SchemaAnalyzer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,sBAAsB,EACtB,eAAe,EACf,iBAAiB,EACjB,WAAW,EACZ,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"SchemaAnalyzer.d.ts","sourceRoot":"","sources":["../../src/cli/SchemaAnalyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -59,6 +59,33 @@ const getErrorChainMessages = (error) => {
|
|
|
59
59
|
}
|
|
60
60
|
return [...new Set(messages)];
|
|
61
61
|
};
|
|
62
|
+
const describeDriverError = (error) => {
|
|
63
|
+
if (error === null || typeof error !== 'object') {
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
const details = error;
|
|
67
|
+
const parts = [
|
|
68
|
+
typeof details.code === 'string' ? `code=${details.code}` : undefined,
|
|
69
|
+
typeof details.errno === 'number' ? `errno=${details.errno}` : undefined,
|
|
70
|
+
typeof details.sqlState === 'string' ? `sqlState=${details.sqlState}` : undefined,
|
|
71
|
+
typeof details.sqlMessage === 'string' ? `sqlMessage=${details.sqlMessage}` : undefined,
|
|
72
|
+
typeof details.fatal === 'boolean' ? `fatal=${details.fatal}` : undefined,
|
|
73
|
+
].filter((part) => part !== undefined);
|
|
74
|
+
return parts.length > 0 ? parts.join(', ') : undefined;
|
|
75
|
+
};
|
|
76
|
+
const logDetailedError = (label, error) => {
|
|
77
|
+
const driverDetails = describeDriverError(error);
|
|
78
|
+
if (driverDetails !== undefined) {
|
|
79
|
+
Logger.error(`${label} driver details: ${driverDetails}`);
|
|
80
|
+
}
|
|
81
|
+
if (error instanceof Error && typeof error.stack === 'string' && error.stack.trim() !== '') {
|
|
82
|
+
Logger.error(`${label} stack: ${error.stack}`);
|
|
83
|
+
}
|
|
84
|
+
const cause = getErrorCause(error);
|
|
85
|
+
if (cause !== undefined) {
|
|
86
|
+
logDetailedError(`${label} cause`, cause);
|
|
87
|
+
}
|
|
88
|
+
};
|
|
62
89
|
/**
|
|
63
90
|
* SchemaAnalyzer - Sealed namespace for schema analysis
|
|
64
91
|
* Provides database schema analysis and compatibility checking
|
|
@@ -83,6 +110,9 @@ export const SchemaAnalyzer = Object.freeze({
|
|
|
83
110
|
return schema;
|
|
84
111
|
}
|
|
85
112
|
catch (error) {
|
|
113
|
+
const errorChain = getErrorChainMessages(error);
|
|
114
|
+
Logger.error(`Schema analysis failure chain: ${errorChain.join(' -> ')}`);
|
|
115
|
+
logDetailedError('Schema analysis failure', error);
|
|
86
116
|
Logger.error('Failed to analyze database schema:', error);
|
|
87
117
|
throw error;
|
|
88
118
|
}
|
|
@@ -141,6 +171,7 @@ export const SchemaAnalyzer = Object.freeze({
|
|
|
141
171
|
catch (error) {
|
|
142
172
|
const errorChain = getErrorChainMessages(error);
|
|
143
173
|
Logger.error(`Failed to extract database tables: ${errorChain.join(' -> ')}`);
|
|
174
|
+
logDetailedError('Schema extraction failure', error);
|
|
144
175
|
Logger.error('Schema extraction failure details:', error);
|
|
145
176
|
throw ErrorFactory.createTryCatchError(`Schema extraction failed: ${errorChain[0] ?? getErrorMessage(error)}`, error);
|
|
146
177
|
}
|