@zintrust/d1-migrator 1.8.7 → 1.8.9

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.
@@ -66,6 +66,10 @@ export declare const DataMigrator: Readonly<{
66
66
  getSchemaInfo(_connection: SourceConnection): Promise<{
67
67
  tables: TableInfo[];
68
68
  }>;
69
+ /**
70
+ * Get target table row count for resumability
71
+ */
72
+ getTargetRowCount(targetConnection: TargetConnection, tableName: string): Promise<number>;
69
73
  /**
70
74
  * Migrate single table
71
75
  */
@@ -1 +1 @@
1
- {"version":3,"file":"DataMigrator.d.ts","sourceRoot":"","sources":["../../src/cli/DataMigrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DataMigrator.d.ts","sourceRoot":"","sources":["../../src/cli/DataMigrator.ts"],"names":[],"mappings":"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"}
@@ -364,6 +364,22 @@ export const DataMigrator = Object.freeze({
364
364
  Logger.info(`Found ${tables.length} tables`);
365
365
  return { tables };
366
366
  },
367
+ /**
368
+ * Get target table row count for resumability
369
+ */
370
+ async getTargetRowCount(targetConnection, tableName) {
371
+ if (!targetConnection.adapter)
372
+ return 0;
373
+ try {
374
+ const result = await targetConnection.adapter.query(`SELECT COUNT(*) as count FROM \`${tableName}\``, []);
375
+ const count = result.rows[0]?.['count'];
376
+ return typeof count === 'number' ? count : 0;
377
+ }
378
+ catch {
379
+ // Table might not exist or query failed
380
+ return 0;
381
+ }
382
+ },
367
383
  /**
368
384
  * Migrate single table
369
385
  */
@@ -374,9 +390,22 @@ export const DataMigrator = Object.freeze({
374
390
  try {
375
391
  const totalRows = table.rowCount || 0;
376
392
  const batchSize = config.batchSize || 1000;
377
- Logger.info(`Processing ${totalRows} rows in batches of ${batchSize}`);
393
+ // Check if table is already synced for resumability
394
+ const targetRowCount = await DataMigrator.getTargetRowCount(targetConnection, table.name);
395
+ if (targetRowCount >= totalRows) {
396
+ Logger.info(`Table ${table.name} already synced: ${targetRowCount}/${totalRows} rows, skipping`);
397
+ return { rowsMigrated: 0, errors: [] };
398
+ }
399
+ if (targetRowCount > 0) {
400
+ Logger.info(`Table ${table.name} partially synced: ${targetRowCount}/${totalRows} rows, resuming from offset ${targetRowCount}`);
401
+ }
402
+ else {
403
+ Logger.info(`Processing ${totalRows} rows in batches of ${batchSize}`);
404
+ }
378
405
  // Process data in chunks sequentially for data integrity
379
- for (let offset = 0; offset < totalRows; offset += batchSize) {
406
+ // Start from the last synced offset for resumability
407
+ const startOffset = targetRowCount;
408
+ for (let offset = startOffset; offset < totalRows; offset += batchSize) {
380
409
  try {
381
410
  const chunk = await DataMigrator.readDataChunk(sourceConnection, table.name, offset, batchSize);
382
411
  if (chunk.length === 0)
@@ -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;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"}
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;AAgxBF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,iBA+G/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"}
@@ -166,7 +166,11 @@ const resolveFlag = (options, optionKeys, envKeys) => {
166
166
  };
167
167
  const encodeConnectionSegment = (value) => {
168
168
  return encodeURIComponent(value).replace(/[!'()*]/g, (match) => {
169
- return `%${match.charCodeAt(0).toString(16).toUpperCase()}`;
169
+ const codePoint = match.codePointAt(0);
170
+ if (codePoint === undefined) {
171
+ return match;
172
+ }
173
+ return `%${codePoint.toString(16).toUpperCase()}`;
170
174
  });
171
175
  };
172
176
  const decodeConnectionSegment = (value) => {
@@ -466,7 +470,18 @@ const resolveTargetType = (options) => {
466
470
  }
467
471
  return targetType ?? 'd1';
468
472
  };
469
- const resolveSourceSsl = () => {
473
+ const resolveSourceSsl = (options) => {
474
+ if (readOptionFlag(options, ['source-ssl', 'sourceSsl'])) {
475
+ return true;
476
+ }
477
+ // Directly read from process.env to bypass env loader cache
478
+ const envValue = process.env['MIGRATE_TO_D1_SOURCE_SSL'] ??
479
+ process.env['D1_MIGRATOR_SOURCE_SSL'] ??
480
+ process.env['DB_SSL'];
481
+ if (envValue === 'true' || envValue === '1' || envValue === 'yes' || envValue === 'on') {
482
+ return true;
483
+ }
484
+ // Fallback to env loader for consistency
470
485
  return readEnvBool(['MIGRATE_TO_D1_SOURCE_SSL', 'D1_MIGRATOR_SOURCE_SSL', 'DB_SSL']) === true;
471
486
  };
472
487
  const resolveTargetDatabase = (options) => {
@@ -490,7 +505,7 @@ const resolveTargetDatabase = (options) => {
490
505
  const resolveMigrationConfig = (options) => {
491
506
  const sourceDriver = resolveSourceDriver(options);
492
507
  const sourceConnectionResolution = resolveSourceConnection(options, sourceDriver);
493
- const sourceSsl = resolveSourceSsl();
508
+ const sourceSsl = resolveSourceSsl(options);
494
509
  const targetDatabase = resolveTargetDatabase(options);
495
510
  const targetType = resolveTargetType(options);
496
511
  const dryRun = resolveFlag(options, ['dry-run', 'dryRun'], ['MIGRATE_TO_D1_DRY_RUN', 'D1_MIGRATOR_DRY_RUN']);
@@ -534,6 +549,7 @@ export const MigrateToD1Command = BaseCommand.create({
534
549
  .option('-f, --from <type>', 'Source database type (mysql, postgresql, sqlite, sqlserver)')
535
550
  .option('-t, --to <type>', 'Target D1 type (d1, d1-remote)')
536
551
  .option('-s, --source-connection <string>', 'Source database connection string')
552
+ .option('--source-ssl', 'Force SSL/TLS for source database connection')
537
553
  .option('-d, --target-database <string>', 'Target D1 database name')
538
554
  .option('-b, --batch-size <number>', 'Batch size for data migration')
539
555
  .option('-c, --checkpoint-interval <number>', 'Checkpoint interval in rows')
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaAnalyzer.d.ts","sourceRoot":"","sources":["../../src/cli/SchemaAnalyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SchemaAnalyzer.d.ts","sourceRoot":"","sources":["../../src/cli/SchemaAnalyzer.ts"],"names":[],"mappings":"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"}
@@ -123,6 +123,7 @@ export const SchemaAnalyzer = Object.freeze({
123
123
  async extractTables(connection) {
124
124
  Logger.info(`Extracting tables from ${connection.driver} database...`);
125
125
  Logger.info(`[SchemaAnalyzer] Source connection (redacted): ${redactConnectionString(connection.connectionString)}`);
126
+ Logger.info(`[SchemaAnalyzer] Source SSL enabled: ${connection.sourceSsl === true}`);
126
127
  try {
127
128
  // Create appropriate adapter based on driver
128
129
  let adapter;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zintrust/d1-migrator",
3
- "version": "1.8.7",
3
+ "version": "1.8.9",
4
4
  "description": "Resumable database migration toolkit for moving data to Cloudflare D1 with ZinTrust.",
5
5
  "private": false,
6
6
  "type": "module",
@@ -40,10 +40,10 @@
40
40
  "prepublishOnly": "npm run build"
41
41
  },
42
42
  "dependencies": {
43
- "@zintrust/db-mysql": "1.8.0",
44
- "@zintrust/db-postgres": "1.8.0",
45
- "@zintrust/db-sqlite": "1.8.0",
46
- "@zintrust/db-sqlserver": "1.8.0",
47
- "@zintrust/db-d1": "1.8.0"
43
+ "@zintrust/db-d1": "^1.8.0",
44
+ "@zintrust/db-mysql": "^1.8.8",
45
+ "@zintrust/db-postgres": "^1.8.0",
46
+ "@zintrust/db-sqlite": "^1.8.0",
47
+ "@zintrust/db-sqlserver": "^1.8.0"
48
48
  }
49
49
  }
@@ -1,179 +0,0 @@
1
- {
2
- "name": "@zintrust/d1-migrator",
3
- "version": "1.7.1",
4
- "buildDate": "2026-05-01T05:26:52.011Z",
5
- "buildEnvironment": {
6
- "node": "v22.22.1",
7
- "platform": "darwin",
8
- "arch": "arm64"
9
- },
10
- "git": {
11
- "commit": "ef4e9bec",
12
- "branch": "release"
13
- },
14
- "package": {
15
- "engines": {
16
- "node": ">=20.0.0"
17
- },
18
- "dependencies": [
19
- "@zintrust/db-mysql",
20
- "@zintrust/db-postgres",
21
- "@zintrust/db-sqlite",
22
- "@zintrust/db-sqlserver",
23
- "@zintrust/db-d1"
24
- ],
25
- "peerDependencies": [
26
- "@zintrust/core"
27
- ]
28
- },
29
- "files": {
30
- "build-manifest.json": {
31
- "size": 5807,
32
- "sha256": "eef551e3974318b0181db8f77c5abd60957797f792babcd8e365bd37f89b366a"
33
- },
34
- "cli/DataMigrator.d.ts": {
35
- "size": 3355,
36
- "sha256": "f7ce0a06282ab0d08a90cca9b0d2cc4ec5a8df91c9e65425aaf342ef005b5af6"
37
- },
38
- "cli/DataMigrator.d.ts.map": {
39
- "size": 2120,
40
- "sha256": "be301eb96726a2611e9f739c5f57b536b24243413ad100effc7afce905d83e81"
41
- },
42
- "cli/DataMigrator.js": {
43
- "size": 18540,
44
- "sha256": "8b0d02707f5d14a458b9a666ef8a27051e32396d61067896dcd486cc680506d2"
45
- },
46
- "cli/MigrateToD1Command.d.ts": {
47
- "size": 1589,
48
- "sha256": "c1bffb405e91cc1ff61507a51bf80baaeb89ce5a1a98ae591ecaa8e35450a8d2"
49
- },
50
- "cli/MigrateToD1Command.d.ts.map": {
51
- "size": 1233,
52
- "sha256": "884676d4ce94415255ec848e8466efa2d69265c3ad015b4b287fea7f4fc16a37"
53
- },
54
- "cli/MigrateToD1Command.js": {
55
- "size": 28588,
56
- "sha256": "07dce8e69a7a328bcf058fd002d468998593d46ae09cc00913cbb512486f4cfd"
57
- },
58
- "cli/ProgressTracker.d.ts": {
59
- "size": 942,
60
- "sha256": "653253439befb42b452a743588253f6156bb8af1953eadc67f27a4a7ab8cff3d"
61
- },
62
- "cli/ProgressTracker.d.ts.map": {
63
- "size": 467,
64
- "sha256": "7d38bb24d3744f54059534f4d3c935ac21e1e3ed54e2b4d68af6326e5893a3a0"
65
- },
66
- "cli/ProgressTracker.js": {
67
- "size": 3243,
68
- "sha256": "2bc54ddac7783047dc71b46cdcafabb9b3a8938f35e352328caf2fa32c6ef500"
69
- },
70
- "cli/SchemaAnalyzer.d.ts": {
71
- "size": 4476,
72
- "sha256": "effe7d9d164ce65815a31b09ab63a3e376a1fd5bdbc0fd6e7598e8895acc08de"
73
- },
74
- "cli/SchemaAnalyzer.d.ts.map": {
75
- "size": 2707,
76
- "sha256": "24236361782ae02bfdb1d12f05ae8c4ad7a0abc27aad23a0ae50e6f05477e4e1"
77
- },
78
- "cli/SchemaAnalyzer.js": {
79
- "size": 24687,
80
- "sha256": "0155f90ab2490ef4fe590f2ab054dd9579555802d761e8e2f2f426a8efad90cd"
81
- },
82
- "index.d.ts": {
83
- "size": 1913,
84
- "sha256": "1cc13fa32042969f2f426fb3c2971049df657bdbbda8275562ab72395fd2426b"
85
- },
86
- "index.d.ts.map": {
87
- "size": 1564,
88
- "sha256": "685c4e8b49c8a86f53feacb7c42e3b8268b9402ae3ae7e47cb46e7b78a9bf78b"
89
- },
90
- "index.js": {
91
- "size": 1262,
92
- "sha256": "7c4c60fe23d200e4b6eab36670b70d916e96dcd572d09c5ed386a4fc26c7dfab"
93
- },
94
- "register.d.ts": {
95
- "size": 159,
96
- "sha256": "e60a21d17e51095a4a8a9c4a2fae45c902305635998782b8194eb968d8083cb2"
97
- },
98
- "register.d.ts.map": {
99
- "size": 211,
100
- "sha256": "6743ba50c90440882096f5eaf09a2fff4c901ba238c604d2240ba072b5754632"
101
- },
102
- "register.js": {
103
- "size": 857,
104
- "sha256": "949f1d93c92a2b9ec1e7d388b4723f8f7012e57eaded61589d205709f0f7a5fe"
105
- },
106
- "schema/SchemaBuilder.d.ts": {
107
- "size": 1443,
108
- "sha256": "46c568eef17ab0b0b1a59cfef0bf06f85d06de6e6d5479429e6a566b43ec87a7"
109
- },
110
- "schema/SchemaBuilder.d.ts.map": {
111
- "size": 670,
112
- "sha256": "6ee501ff68e7d23fbb14f3f24167606346826392c8782153920b5d27cbb3348f"
113
- },
114
- "schema/SchemaBuilder.js": {
115
- "size": 6087,
116
- "sha256": "fc6ac1668fde7bf5f4d54492d41e7004ccde0a60cc93197ad228d5675248dd01"
117
- },
118
- "schema/TypeConverter.d.ts": {
119
- "size": 989,
120
- "sha256": "cca9b405c198b91062c4f44bba7acb0a36dedbca0cb3f523ba576eb5fa375efd"
121
- },
122
- "schema/TypeConverter.d.ts.map": {
123
- "size": 431,
124
- "sha256": "cef867ebdec5573d7199095d074e55d4222de7516eabaff1913ea377abca6a71"
125
- },
126
- "schema/TypeConverter.js": {
127
- "size": 5844,
128
- "sha256": "fd108420aaa34f06d970a53557f9ddf3942866122bb93053b32fd93836682776"
129
- },
130
- "schema/Validator.d.ts": {
131
- "size": 2129,
132
- "sha256": "3970191b0e8e2d1e19ae60303d2d549cc7a4cc2c7ec24b1b41878adb68354146"
133
- },
134
- "schema/Validator.d.ts.map": {
135
- "size": 1206,
136
- "sha256": "f6c526a78303423112e7916093bbeed2d7355ab5db5f74ce2c84e56ca9e82837"
137
- },
138
- "schema/Validator.js": {
139
- "size": 8868,
140
- "sha256": "e8349ddbbf3c969468d741e634a50422847052f21afa38e63493853273945e6e"
141
- },
142
- "types.d.ts": {
143
- "size": 4098,
144
- "sha256": "a03fc55513b8d5c7d0cae3f417fad9e5dcaaee511b4868cdae8cd3061af84a6c"
145
- },
146
- "types.d.ts.map": {
147
- "size": 4181,
148
- "sha256": "4dff98570f92baca6dee52a13a1942e124e3b6a386b0d19381b8e7319a623bae"
149
- },
150
- "types.js": {
151
- "size": 85,
152
- "sha256": "f3a7356e481968927c5e7e784706d8d88a0fa07a742b72216751d6ef0016eb48"
153
- },
154
- "utils/CheckpointManager.d.ts": {
155
- "size": 1408,
156
- "sha256": "4b0d63804ff4a4013114903f64b65e17f7f184cfc302bfb50d08a41dc68077bb"
157
- },
158
- "utils/CheckpointManager.d.ts.map": {
159
- "size": 736,
160
- "sha256": "d47def494117ec256c191d30e60353ec3d8340e471f802ff3e8413d7e62b5625"
161
- },
162
- "utils/CheckpointManager.js": {
163
- "size": 7293,
164
- "sha256": "630d69a08996eac1e4d6a7606db896807dda467f17875fb1514a51c2386d4896"
165
- },
166
- "utils/DataValidator.d.ts": {
167
- "size": 1512,
168
- "sha256": "b7d9127f9d12a7705c454173e6b8c7e6aea66a1143399f7eed9708e37dce2aa3"
169
- },
170
- "utils/DataValidator.d.ts.map": {
171
- "size": 781,
172
- "sha256": "bfbff6541c2232782cd82baa04492949c4420155b187ceb2dbaa6905dc06118b"
173
- },
174
- "utils/DataValidator.js": {
175
- "size": 5337,
176
- "sha256": "08be6df9d5138697e5d7e76f8adb81e44f380ed4da2fb5bee188b8b18485c9d5"
177
- }
178
- }
179
- }