chkit 0.1.2-beta.7 → 0.2.0-beta.12

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 (322) hide show
  1. package/README.md +69 -56
  2. package/dist/bin/chkit.js +82 -31
  3. package/dist/bin/chkit.js.map +1 -1
  4. package/dist/commands/check/output.js +1 -1
  5. package/dist/commands/check/output.js.map +1 -1
  6. package/dist/commands/drift/command.d.ts.map +1 -1
  7. package/dist/commands/drift/command.js +9 -0
  8. package/dist/commands/drift/command.js.map +1 -1
  9. package/dist/commands/drift/compare.d.ts +52 -4
  10. package/dist/commands/drift/compare.d.ts.map +1 -1
  11. package/dist/commands/drift/compare.js +258 -49
  12. package/dist/commands/drift/compare.js.map +1 -1
  13. package/dist/commands/drift/payload.d.ts +1 -0
  14. package/dist/commands/drift/payload.d.ts.map +1 -1
  15. package/dist/commands/drift/payload.js +59 -10
  16. package/dist/commands/drift/payload.js.map +1 -1
  17. package/dist/commands/generate/command.d.ts.map +1 -1
  18. package/dist/commands/generate/command.js +73 -33
  19. package/dist/commands/generate/command.js.map +1 -1
  20. package/dist/commands/generate/cutover.d.ts +56 -0
  21. package/dist/commands/generate/cutover.d.ts.map +1 -0
  22. package/dist/commands/generate/cutover.js +138 -0
  23. package/dist/commands/generate/cutover.js.map +1 -0
  24. package/dist/commands/generate/output.d.ts +3 -2
  25. package/dist/commands/generate/output.d.ts.map +1 -1
  26. package/dist/commands/generate/output.js +17 -2
  27. package/dist/commands/generate/output.js.map +1 -1
  28. package/dist/commands/generate/plan-pipeline.d.ts.map +1 -1
  29. package/dist/commands/generate/plan-pipeline.js +35 -36
  30. package/dist/commands/generate/plan-pipeline.js.map +1 -1
  31. package/dist/commands/init.d.ts +2 -0
  32. package/dist/commands/init.d.ts.map +1 -1
  33. package/dist/commands/init.js +21 -4
  34. package/dist/commands/init.js.map +1 -1
  35. package/dist/commands/migrate/abandon.d.ts +39 -0
  36. package/dist/commands/migrate/abandon.d.ts.map +1 -0
  37. package/dist/commands/migrate/abandon.js +76 -0
  38. package/dist/commands/migrate/abandon.js.map +1 -0
  39. package/dist/commands/migrate/apply.d.ts +10 -1
  40. package/dist/commands/migrate/apply.d.ts.map +1 -1
  41. package/dist/commands/migrate/apply.js +108 -10
  42. package/dist/commands/migrate/apply.js.map +1 -1
  43. package/dist/commands/migrate/async-apply.d.ts +11 -3
  44. package/dist/commands/migrate/async-apply.d.ts.map +1 -1
  45. package/dist/commands/migrate/async-apply.js +113 -27
  46. package/dist/commands/migrate/async-apply.js.map +1 -1
  47. package/dist/commands/migrate/command.d.ts +46 -1
  48. package/dist/commands/migrate/command.d.ts.map +1 -1
  49. package/dist/commands/migrate/command.js +159 -35
  50. package/dist/commands/migrate/command.js.map +1 -1
  51. package/dist/commands/migrate/empty.d.ts +8 -0
  52. package/dist/commands/migrate/empty.d.ts.map +1 -0
  53. package/dist/commands/migrate/empty.js +17 -0
  54. package/dist/commands/migrate/empty.js.map +1 -0
  55. package/dist/commands/migrate/errors.d.ts +22 -0
  56. package/dist/commands/migrate/errors.d.ts.map +1 -0
  57. package/dist/commands/migrate/errors.js +31 -0
  58. package/dist/commands/migrate/errors.js.map +1 -0
  59. package/dist/commands/migrate/output.d.ts +31 -0
  60. package/dist/commands/migrate/output.d.ts.map +1 -1
  61. package/dist/commands/migrate/output.js +120 -9
  62. package/dist/commands/migrate/output.js.map +1 -1
  63. package/dist/commands/migrate/prompts.d.ts +1 -0
  64. package/dist/commands/migrate/prompts.d.ts.map +1 -1
  65. package/dist/commands/migrate/prompts.js +3 -0
  66. package/dist/commands/migrate/prompts.js.map +1 -1
  67. package/dist/commands/migrate/recovery.d.ts +90 -0
  68. package/dist/commands/migrate/recovery.d.ts.map +1 -0
  69. package/dist/commands/migrate/recovery.js +163 -0
  70. package/dist/commands/migrate/recovery.js.map +1 -0
  71. package/dist/commands/migrate/retry.d.ts +37 -0
  72. package/dist/commands/migrate/retry.d.ts.map +1 -0
  73. package/dist/commands/migrate/retry.js +46 -0
  74. package/dist/commands/migrate/retry.js.map +1 -0
  75. package/dist/commands/migrate/settings.d.ts +8 -0
  76. package/dist/commands/migrate/settings.d.ts.map +1 -0
  77. package/dist/commands/migrate/settings.js +40 -0
  78. package/dist/commands/migrate/settings.js.map +1 -0
  79. package/dist/commands/plugin.d.ts.map +1 -1
  80. package/dist/commands/plugin.js +28 -4
  81. package/dist/commands/plugin.js.map +1 -1
  82. package/dist/commands/query.d.ts.map +1 -1
  83. package/dist/commands/query.js +11 -15
  84. package/dist/commands/query.js.map +1 -1
  85. package/dist/commands/registry.d.ts +2 -0
  86. package/dist/commands/registry.d.ts.map +1 -0
  87. package/dist/commands/registry.js +228 -0
  88. package/dist/commands/registry.js.map +1 -0
  89. package/dist/commands/snapshot/command.d.ts +3 -0
  90. package/dist/commands/snapshot/command.d.ts.map +1 -0
  91. package/dist/commands/snapshot/command.js +32 -0
  92. package/dist/commands/snapshot/command.js.map +1 -0
  93. package/dist/commands/snapshot/output.d.ts +24 -0
  94. package/dist/commands/snapshot/output.d.ts.map +1 -0
  95. package/dist/commands/snapshot/output.js +86 -0
  96. package/dist/commands/snapshot/output.js.map +1 -0
  97. package/dist/commands/snapshot/rebuild.d.ts +19 -0
  98. package/dist/commands/snapshot/rebuild.d.ts.map +1 -0
  99. package/dist/commands/snapshot/rebuild.js +94 -0
  100. package/dist/commands/snapshot/rebuild.js.map +1 -0
  101. package/dist/internal-plugins/core/plugin.d.ts.map +1 -1
  102. package/dist/internal-plugins/core/plugin.js +2 -0
  103. package/dist/internal-plugins/core/plugin.js.map +1 -1
  104. package/dist/registry/build.d.ts +17 -0
  105. package/dist/registry/build.d.ts.map +1 -0
  106. package/dist/registry/build.js +94 -0
  107. package/dist/registry/build.js.map +1 -0
  108. package/dist/registry/dependencies.d.ts +19 -0
  109. package/dist/registry/dependencies.d.ts.map +1 -0
  110. package/dist/registry/dependencies.js +105 -0
  111. package/dist/registry/dependencies.js.map +1 -0
  112. package/dist/registry/files.d.ts +4 -0
  113. package/dist/registry/files.d.ts.map +1 -0
  114. package/dist/registry/files.js +33 -0
  115. package/dist/registry/files.js.map +1 -0
  116. package/dist/registry/install.d.ts +55 -0
  117. package/dist/registry/install.d.ts.map +1 -0
  118. package/dist/registry/install.js +175 -0
  119. package/dist/registry/install.js.map +1 -0
  120. package/dist/registry/model.d.ts +172 -0
  121. package/dist/registry/model.d.ts.map +1 -0
  122. package/dist/registry/model.js +161 -0
  123. package/dist/registry/model.js.map +1 -0
  124. package/dist/registry/project-config.d.ts +18 -0
  125. package/dist/registry/project-config.d.ts.map +1 -0
  126. package/dist/registry/project-config.js +337 -0
  127. package/dist/registry/project-config.js.map +1 -0
  128. package/dist/registry/resolve.d.ts +7 -0
  129. package/dist/registry/resolve.d.ts.map +1 -0
  130. package/dist/registry/resolve.js +136 -0
  131. package/dist/registry/resolve.js.map +1 -0
  132. package/dist/runtime/argv.d.ts +3 -0
  133. package/dist/runtime/argv.d.ts.map +1 -0
  134. package/dist/runtime/argv.js +29 -0
  135. package/dist/runtime/argv.js.map +1 -0
  136. package/dist/runtime/command-dispatch.d.ts +2 -1
  137. package/dist/runtime/command-dispatch.d.ts.map +1 -1
  138. package/dist/runtime/command-dispatch.js +15 -7
  139. package/dist/runtime/command-dispatch.js.map +1 -1
  140. package/dist/runtime/config-merge.d.ts.map +1 -1
  141. package/dist/runtime/config-merge.js +2 -1
  142. package/dist/runtime/config-merge.js.map +1 -1
  143. package/dist/runtime/config.d.ts.map +1 -1
  144. package/dist/runtime/config.js +2 -1
  145. package/dist/runtime/config.js.map +1 -1
  146. package/dist/runtime/global-flags.d.ts +4 -0
  147. package/dist/runtime/global-flags.d.ts.map +1 -1
  148. package/dist/runtime/global-flags.js +1 -0
  149. package/dist/runtime/global-flags.js.map +1 -1
  150. package/dist/runtime/help.d.ts +1 -1
  151. package/dist/runtime/help.d.ts.map +1 -1
  152. package/dist/runtime/help.js +13 -4
  153. package/dist/runtime/help.js.map +1 -1
  154. package/dist/runtime/journal-store.d.ts.map +1 -1
  155. package/dist/runtime/journal-store.js +178 -42
  156. package/dist/runtime/journal-store.js.map +1 -1
  157. package/dist/runtime/json-output.d.ts +15 -1
  158. package/dist/runtime/json-output.d.ts.map +1 -1
  159. package/dist/runtime/json-output.js +43 -2
  160. package/dist/runtime/json-output.js.map +1 -1
  161. package/dist/runtime/migration-store.d.ts +1 -1
  162. package/dist/runtime/migration-store.d.ts.map +1 -1
  163. package/dist/runtime/migration-store.js +17 -16
  164. package/dist/runtime/migration-store.js.map +1 -1
  165. package/dist/runtime/plugin-runtime/executor-debug.d.ts.map +1 -1
  166. package/dist/runtime/plugin-runtime/executor-debug.js +10 -8
  167. package/dist/runtime/plugin-runtime/executor-debug.js.map +1 -1
  168. package/dist/runtime/plugin-runtime/loader.js +1 -1
  169. package/dist/runtime/plugin-runtime/loader.js.map +1 -1
  170. package/dist/runtime/safety-markers.d.ts +4 -2
  171. package/dist/runtime/safety-markers.d.ts.map +1 -1
  172. package/dist/runtime/safety-markers.js +4 -2
  173. package/dist/runtime/safety-markers.js.map +1 -1
  174. package/dist/runtime/schema-loader.d.ts +20 -1
  175. package/dist/runtime/schema-loader.d.ts.map +1 -1
  176. package/dist/runtime/schema-loader.js +26 -0
  177. package/dist/runtime/schema-loader.js.map +1 -1
  178. package/dist/runtime/snapshot-document.d.ts +33 -0
  179. package/dist/runtime/snapshot-document.d.ts.map +1 -0
  180. package/dist/runtime/snapshot-document.js +65 -0
  181. package/dist/runtime/snapshot-document.js.map +1 -0
  182. package/package.json +20 -7
  183. package/dist/bin/clickhouse-resource.d.ts +0 -4
  184. package/dist/bin/clickhouse-resource.d.ts.map +0 -1
  185. package/dist/bin/clickhouse-resource.js +0 -11
  186. package/dist/bin/clickhouse-resource.js.map +0 -1
  187. package/dist/bin/command-dispatch.d.ts +0 -13
  188. package/dist/bin/command-dispatch.d.ts.map +0 -1
  189. package/dist/bin/command-dispatch.js +0 -186
  190. package/dist/bin/command-dispatch.js.map +0 -1
  191. package/dist/bin/command-registry.d.ts +0 -34
  192. package/dist/bin/command-registry.d.ts.map +0 -1
  193. package/dist/bin/command-registry.js +0 -87
  194. package/dist/bin/command-registry.js.map +0 -1
  195. package/dist/bin/commands/check.d.ts +0 -3
  196. package/dist/bin/commands/check.d.ts.map +0 -1
  197. package/dist/bin/commands/check.js +0 -181
  198. package/dist/bin/commands/check.js.map +0 -1
  199. package/dist/bin/commands/codegen.d.ts +0 -2
  200. package/dist/bin/commands/codegen.d.ts.map +0 -1
  201. package/dist/bin/commands/codegen.js +0 -25
  202. package/dist/bin/commands/codegen.js.map +0 -1
  203. package/dist/bin/commands/drift.d.ts +0 -27
  204. package/dist/bin/commands/drift.d.ts.map +0 -1
  205. package/dist/bin/commands/drift.js +0 -220
  206. package/dist/bin/commands/drift.js.map +0 -1
  207. package/dist/bin/commands/generate/output.d.ts +0 -8
  208. package/dist/bin/commands/generate/output.d.ts.map +0 -1
  209. package/dist/bin/commands/generate/output.js +0 -58
  210. package/dist/bin/commands/generate/output.js.map +0 -1
  211. package/dist/bin/commands/generate/plan-pipeline.d.ts +0 -7
  212. package/dist/bin/commands/generate/plan-pipeline.d.ts.map +0 -1
  213. package/dist/bin/commands/generate/plan-pipeline.js +0 -143
  214. package/dist/bin/commands/generate/plan-pipeline.js.map +0 -1
  215. package/dist/bin/commands/generate/rename-mappings.d.ts +0 -29
  216. package/dist/bin/commands/generate/rename-mappings.d.ts.map +0 -1
  217. package/dist/bin/commands/generate/rename-mappings.js +0 -195
  218. package/dist/bin/commands/generate/rename-mappings.js.map +0 -1
  219. package/dist/bin/commands/generate.d.ts +0 -3
  220. package/dist/bin/commands/generate.d.ts.map +0 -1
  221. package/dist/bin/commands/generate.js +0 -158
  222. package/dist/bin/commands/generate.js.map +0 -1
  223. package/dist/bin/commands/init.d.ts +0 -2
  224. package/dist/bin/commands/init.d.ts.map +0 -1
  225. package/dist/bin/commands/init.js +0 -12
  226. package/dist/bin/commands/init.js.map +0 -1
  227. package/dist/bin/commands/migrate.d.ts +0 -3
  228. package/dist/bin/commands/migrate.d.ts.map +0 -1
  229. package/dist/bin/commands/migrate.js +0 -288
  230. package/dist/bin/commands/migrate.js.map +0 -1
  231. package/dist/bin/commands/plugin-like.d.ts +0 -38
  232. package/dist/bin/commands/plugin-like.d.ts.map +0 -1
  233. package/dist/bin/commands/plugin-like.js +0 -101
  234. package/dist/bin/commands/plugin-like.js.map +0 -1
  235. package/dist/bin/commands/plugin.d.ts +0 -3
  236. package/dist/bin/commands/plugin.d.ts.map +0 -1
  237. package/dist/bin/commands/plugin.js +0 -148
  238. package/dist/bin/commands/plugin.js.map +0 -1
  239. package/dist/bin/commands/pull.d.ts +0 -2
  240. package/dist/bin/commands/pull.d.ts.map +0 -1
  241. package/dist/bin/commands/pull.js +0 -25
  242. package/dist/bin/commands/pull.js.map +0 -1
  243. package/dist/bin/commands/status.d.ts +0 -3
  244. package/dist/bin/commands/status.d.ts.map +0 -1
  245. package/dist/bin/commands/status.js +0 -63
  246. package/dist/bin/commands/status.js.map +0 -1
  247. package/dist/bin/commands/typegen.d.ts +0 -2
  248. package/dist/bin/commands/typegen.d.ts.map +0 -1
  249. package/dist/bin/commands/typegen.js +0 -25
  250. package/dist/bin/commands/typegen.js.map +0 -1
  251. package/dist/bin/config.d.ts +0 -13
  252. package/dist/bin/config.d.ts.map +0 -1
  253. package/dist/bin/config.js +0 -48
  254. package/dist/bin/config.js.map +0 -1
  255. package/dist/bin/debug.d.ts +0 -3
  256. package/dist/bin/debug.d.ts.map +0 -1
  257. package/dist/bin/debug.js +0 -14
  258. package/dist/bin/debug.js.map +0 -1
  259. package/dist/bin/global-flags.d.ts +0 -16
  260. package/dist/bin/global-flags.d.ts.map +0 -1
  261. package/dist/bin/global-flags.js +0 -7
  262. package/dist/bin/global-flags.js.map +0 -1
  263. package/dist/bin/help.d.ts +0 -5
  264. package/dist/bin/help.d.ts.map +0 -1
  265. package/dist/bin/help.js +0 -84
  266. package/dist/bin/help.js.map +0 -1
  267. package/dist/bin/internal-plugins/index.d.ts +0 -3
  268. package/dist/bin/internal-plugins/index.d.ts.map +0 -1
  269. package/dist/bin/internal-plugins/index.js +0 -5
  270. package/dist/bin/internal-plugins/index.js.map +0 -1
  271. package/dist/bin/internal-plugins/skill-hint.d.ts +0 -31
  272. package/dist/bin/internal-plugins/skill-hint.d.ts.map +0 -1
  273. package/dist/bin/internal-plugins/skill-hint.js +0 -172
  274. package/dist/bin/internal-plugins/skill-hint.js.map +0 -1
  275. package/dist/bin/journal-store.d.ts +0 -10
  276. package/dist/bin/journal-store.d.ts.map +0 -1
  277. package/dist/bin/journal-store.js +0 -137
  278. package/dist/bin/journal-store.js.map +0 -1
  279. package/dist/bin/json-output.d.ts +0 -5
  280. package/dist/bin/json-output.d.ts.map +0 -1
  281. package/dist/bin/json-output.js +0 -21
  282. package/dist/bin/json-output.js.map +0 -1
  283. package/dist/bin/lib.d.ts +0 -5
  284. package/dist/bin/lib.d.ts.map +0 -1
  285. package/dist/bin/lib.js +0 -5
  286. package/dist/bin/lib.js.map +0 -1
  287. package/dist/bin/logging.d.ts +0 -3
  288. package/dist/bin/logging.d.ts.map +0 -1
  289. package/dist/bin/logging.js +0 -31
  290. package/dist/bin/logging.js.map +0 -1
  291. package/dist/bin/migration-store.d.ts +0 -22
  292. package/dist/bin/migration-store.d.ts.map +0 -1
  293. package/dist/bin/migration-store.js +0 -60
  294. package/dist/bin/migration-store.js.map +0 -1
  295. package/dist/bin/plugin-runtime.d.ts +0 -45
  296. package/dist/bin/plugin-runtime.d.ts.map +0 -1
  297. package/dist/bin/plugin-runtime.js +0 -513
  298. package/dist/bin/plugin-runtime.js.map +0 -1
  299. package/dist/bin/safety-markers.d.ts +0 -23
  300. package/dist/bin/safety-markers.d.ts.map +0 -1
  301. package/dist/bin/safety-markers.js +0 -85
  302. package/dist/bin/safety-markers.js.map +0 -1
  303. package/dist/bin/schema-loader.d.ts +0 -3
  304. package/dist/bin/schema-loader.d.ts.map +0 -1
  305. package/dist/bin/schema-loader.js +0 -11
  306. package/dist/bin/schema-loader.js.map +0 -1
  307. package/dist/bin/table-scope.d.ts +0 -38
  308. package/dist/bin/table-scope.d.ts.map +0 -1
  309. package/dist/bin/table-scope.js +0 -167
  310. package/dist/bin/table-scope.js.map +0 -1
  311. package/dist/bin/version.d.ts +0 -2
  312. package/dist/bin/version.d.ts.map +0 -1
  313. package/dist/bin/version.js +0 -5
  314. package/dist/bin/version.js.map +0 -1
  315. package/dist/drift-diff.d.ts +0 -8
  316. package/dist/drift-diff.d.ts.map +0 -1
  317. package/dist/drift-diff.js +0 -46
  318. package/dist/drift-diff.js.map +0 -1
  319. package/dist/drift.d.ts +0 -66
  320. package/dist/drift.d.ts.map +0 -1
  321. package/dist/drift.js +0 -220
  322. package/dist/drift.js.map +0 -1
@@ -1,4 +1,6 @@
1
1
  import { mkdir } from 'node:fs/promises';
2
+ import { join, relative } from 'node:path';
3
+ import process from 'node:process';
2
4
  import { defineFlags, typedFlags, } from '../../plugins.js';
3
5
  import { resolveDirs } from '../../runtime/config.js';
4
6
  import { debug } from '../../runtime/debug.js';
@@ -6,15 +8,39 @@ import { GLOBAL_FLAGS } from '../../runtime/global-flags.js';
6
8
  import { createJournalStore } from '../../runtime/journal-store.js';
7
9
  import { findChecksumMismatches, listMigrations, readSnapshot, } from '../../runtime/migration-store.js';
8
10
  import { resolveTableScope, tableKeysFromDefinitions } from '../../runtime/table-scope.js';
11
+ import { abandonMigrationState, abandonReport, readAbandonableState } from './abandon.js';
9
12
  import { applyMigration } from './apply.js';
10
13
  import { scanDestructive } from './destructive.js';
11
- import { emitApplySummaryJson, emitChecksumMismatchJson, emitDestructiveBlockedJson, emitNoPending, emitNoScopeMatch, emitPlanJson, renderApplied, renderApplySummary, renderMigrationLog, renderPlanOnlyNotice, renderPlanText, } from './output.js';
12
- import { confirmApply, confirmDestructiveExecution, isBackgroundOrCI, printDestructiveOperationDetails, } from './prompts.js';
14
+ import { findEmptyMigrations } from './empty.js';
15
+ import { emptyMigrationsError, MigrateError } from './errors.js';
16
+ import { emitAbandonJson, emitApplySummaryJson, emitChecksumMismatchJson, emitDestructiveBlockedJson, emitEmptyMigrationsBlockedJson, emitNoPending, emitNoScopeMatch, emitPlanJson, renderAbandonPlanOnlyNotice, renderAbandonText, renderApplied, renderApplySummary, renderMigrationLog, renderPlanOnlyNotice, renderPlanText, } from './output.js';
17
+ import { confirmAbandon, confirmApply, confirmDestructiveExecution, isBackgroundOrCI, printDestructiveOperationDetails, } from './prompts.js';
18
+ import { resolveRecoveryTargets } from './recovery.js';
19
+ import { resolveRetry } from './retry.js';
13
20
  import { filterPendingByScope } from './scope.js';
21
+ import { parseSettingFlags } from './settings.js';
14
22
  const MIGRATE_FLAGS = defineFlags([
15
23
  { name: '--apply', type: 'boolean', description: 'Apply pending migrations on ClickHouse (no prompt)' },
16
24
  { name: '--execute', type: 'boolean', description: 'Alias for --apply' },
17
25
  { name: '--allow-destructive', type: 'boolean', description: 'Allow destructive migrations tagged with risk=danger' },
26
+ {
27
+ name: '--retry',
28
+ type: 'string',
29
+ description: 'Resume a failed migration after editing its file (skips completed statements)',
30
+ placeholder: '<migration>',
31
+ },
32
+ {
33
+ name: '--abandon',
34
+ type: 'string',
35
+ description: 'Reset a failed migration so the next apply runs it from statement 1 (journal only; previews without --apply)',
36
+ placeholder: '<migration>',
37
+ },
38
+ {
39
+ name: '--setting',
40
+ type: 'string[]',
41
+ description: 'ClickHouse query setting sent with each migration statement, e.g. max_table_size_to_drop=0 (repeatable)',
42
+ placeholder: '<name=value>',
43
+ },
18
44
  ]);
19
45
  export const migrateCommand = {
20
46
  name: 'migrate',
@@ -22,25 +48,33 @@ export const migrateCommand = {
22
48
  flags: MIGRATE_FLAGS,
23
49
  run: cmdMigrate,
24
50
  };
51
+ const TERMINAL_PROMPT = {
52
+ isInteractive: () => !isBackgroundOrCI(),
53
+ confirm: confirmAbandon,
54
+ };
25
55
  async function cmdMigrate(runCtx) {
26
56
  const ctx = await prepareMigration(runCtx);
57
+ if (ctx.abandonTarget !== undefined)
58
+ return runAbandon(ctx, ctx.abandonTarget);
27
59
  const checksumExit = await runChecksumGate(ctx);
28
60
  if (checksumExit !== undefined)
29
61
  return checksumExit;
30
- const scope = await resolvePendingScope(ctx);
31
- if (scope.exit !== undefined)
32
- return scope.exit;
33
- const { pending, undeterminedScope } = scope;
34
- const planExit = await renderPlan(ctx, pending, undeterminedScope);
62
+ const plan = await resolvePendingPlan(ctx);
63
+ if (plan.pending.length === 0)
64
+ return renderNothingPending(ctx, plan);
65
+ const planExit = await renderPlan(ctx, plan);
35
66
  if (planExit !== undefined)
36
67
  return planExit;
68
+ const emptyExit = runEmptyMigrationGate(ctx, plan.emptyMigrations);
69
+ if (emptyExit !== undefined)
70
+ return emptyExit;
37
71
  const confirmExit = await runConfirmGate(ctx);
38
72
  if (confirmExit !== undefined)
39
73
  return confirmExit;
40
- const destructiveExit = await runDestructiveGate(ctx, pending);
74
+ const destructiveExit = await runDestructiveGate(ctx, plan.pending);
41
75
  if (destructiveExit !== undefined)
42
76
  return destructiveExit;
43
- return applyPending(ctx, pending, undeterminedScope);
77
+ return applyPending(ctx, plan);
44
78
  }
45
79
  /** Parse flags, resolve deps, run onConfigLoaded, and load the pending set. */
46
80
  async function prepareMigration(runCtx) {
@@ -48,16 +82,21 @@ async function prepareMigration(runCtx) {
48
82
  const f = typedFlags(flags, [...GLOBAL_FLAGS, ...MIGRATE_FLAGS]);
49
83
  const executeRequested = f['--apply'] === true || f['--execute'] === true;
50
84
  const allowDestructive = f['--allow-destructive'] === true;
85
+ const settings = parseSettingFlags(f['--setting']);
51
86
  const tableSelector = f['--table'];
52
87
  const jsonMode = f['--json'] === true;
88
+ const { retryTarget, abandonTarget } = resolveRecoveryTargets(flags);
53
89
  const { migrationsDir, metaDir } = resolveDirs(config);
54
- debug('migrate', `flags: execute=${executeRequested}, allowDestructive=${allowDestructive}, json=${jsonMode}`);
90
+ debug('migrate', `flags: execute=${executeRequested}, allowDestructive=${allowDestructive}, json=${jsonMode}, ` +
91
+ `retry=${retryTarget ?? '-'}, abandon=${abandonTarget ?? '-'}`);
55
92
  if (!pluginContext.hasExecutor) {
56
93
  throw new Error('clickhouse config is required for migrate (journal is stored in ClickHouse)');
57
94
  }
58
95
  const db = pluginContext.executor;
59
96
  const journalStore = createJournalStore(db, config.clickhouse?.cluster);
60
- const snapshot = await readSnapshot(metaDir);
97
+ // --abandon only changes the journal and rejects --table, so it does not
98
+ // read snapshot.json: a conflicted snapshot cannot block it.
99
+ const snapshot = abandonTarget === undefined ? await readSnapshot(metaDir) : null;
61
100
  const tableScope = resolveTableScope(tableSelector, tableKeysFromDefinitions(snapshot?.definitions ?? []));
62
101
  const mode = executeRequested ? 'execute' : 'plan';
63
102
  await pluginRuntime.runOnConfigLoaded({
@@ -69,6 +108,9 @@ async function prepareMigration(runCtx) {
69
108
  });
70
109
  await mkdir(migrationsDir, { recursive: true });
71
110
  const files = await listMigrations(migrationsDir);
111
+ if (retryTarget !== undefined && !files.includes(retryTarget)) {
112
+ throw new MigrateError('migration_not_found', `--retry: no migration file named ${retryTarget} in ${migrationsDir}. To reset the journal state of a migration whose file was deleted, use chkit migrate --abandon ${retryTarget}.`);
113
+ }
72
114
  const journal = await journalStore.readJournal();
73
115
  const appliedNames = new Set(journal.applied.map((entry) => entry.name));
74
116
  const pendingAll = files.filter((file) => !appliedNames.has(file));
@@ -77,8 +119,10 @@ async function prepareMigration(runCtx) {
77
119
  jsonMode,
78
120
  executeRequested,
79
121
  allowDestructive,
122
+ settings,
80
123
  mode,
81
124
  migrationsDir,
125
+ metaDir,
82
126
  db,
83
127
  journalStore,
84
128
  config,
@@ -86,9 +130,53 @@ async function prepareMigration(runCtx) {
86
130
  pluginRuntime,
87
131
  tableScope,
88
132
  journal,
133
+ files,
134
+ appliedNames,
89
135
  pendingAll,
136
+ retryTarget,
137
+ abandonTarget,
90
138
  };
91
139
  }
140
+ /**
141
+ * --abandon <migration>: reset the journal state of a failed migration so the
142
+ * next apply runs it from statement 1. Without --apply it only previews, like
143
+ * the rest of migrate, or asks first in an interactive terminal. Runs before
144
+ * every other gate and applies nothing.
145
+ */
146
+ export async function runAbandon(ctx, migration, prompt = TERMINAL_PROMPT) {
147
+ const { jsonMode, executeRequested, journalStore, tableScope } = ctx;
148
+ const state = await readAbandonableState({ migration, appliedNames: ctx.appliedNames }, { journalStore });
149
+ const report = abandonReport(state);
150
+ const textInput = {
151
+ fileExists: ctx.files.includes(migration),
152
+ snapshotFile: relative(process.cwd(), join(ctx.metaDir, 'snapshot.json')),
153
+ };
154
+ if (!executeRequested) {
155
+ if (jsonMode) {
156
+ emitAbandonJson({ mode: 'plan', scope: tableScope, abandon: report });
157
+ return 0;
158
+ }
159
+ renderAbandonText(report, { ...textInput, performed: false });
160
+ if (!prompt.isInteractive()) {
161
+ renderAbandonPlanOnlyNotice();
162
+ return 0;
163
+ }
164
+ if (!(await prompt.confirm(migration))) {
165
+ console.log('Abandon cancelled by user.');
166
+ return 0;
167
+ }
168
+ await abandonMigrationState(state, { journalStore });
169
+ console.log(`Abandoned in-progress migration ${migration}.`);
170
+ return 0;
171
+ }
172
+ await abandonMigrationState(state, { journalStore });
173
+ if (jsonMode) {
174
+ emitAbandonJson({ mode: 'execute', scope: tableScope, abandon: report });
175
+ return 0;
176
+ }
177
+ renderAbandonText(report, { ...textInput, performed: true });
178
+ return 0;
179
+ }
92
180
  /** Gate 1: block when applied migrations no longer match their recorded checksum. */
93
181
  async function runChecksumGate(ctx) {
94
182
  const { migrationsDir, journal, jsonMode, mode, tableScope } = ctx;
@@ -102,38 +190,68 @@ async function runChecksumGate(ctx) {
102
190
  }
103
191
  throw new Error(`Checksum mismatch detected on applied migrations: ${checksumMismatches.map((item) => item.name).join(', ')}`);
104
192
  }
105
- /** Resolve table scope, filter the pending set, and short-circuit empty runs. */
193
+ /**
194
+ * Filter the pending set by table scope, find the files without statements,
195
+ * and resolve --retry, before any gate runs. --retry is resolved even when
196
+ * nothing is pending, so every run reports what it did.
197
+ */
198
+ async function resolvePendingPlan(ctx) {
199
+ const { migrationsDir, retryTarget, journalStore, appliedNames } = ctx;
200
+ const scope = await resolvePendingScope(ctx);
201
+ const emptyMigrations = await findEmptyMigrations(migrationsDir, scope.pending);
202
+ const retry = retryTarget === undefined
203
+ ? undefined
204
+ : await resolveRetry({ migration: retryTarget, migrationsDir, pending: scope.pending, emptyMigrations, appliedNames }, { journalStore });
205
+ return { ...scope, emptyMigrations, retry };
206
+ }
207
+ /** Resolve the table scope and filter the pending set by it. */
106
208
  async function resolvePendingScope(ctx) {
107
- const { tableScope, jsonMode, mode, migrationsDir, pendingAll } = ctx;
108
- if (tableScope.enabled && tableScope.matchCount === 0) {
109
- emitNoScopeMatch({ jsonMode, mode, scope: tableScope });
110
- return { exit: 0, pending: [], undeterminedScope: [] };
111
- }
112
- let pending = pendingAll;
113
- let undeterminedScope = [];
114
- if (tableScope.enabled) {
115
- const scoped = await filterPendingByScope(migrationsDir, pendingAll, new Set(tableScope.matchedTables));
116
- pending = scoped.inScope;
117
- undeterminedScope = scoped.undetermined;
118
- }
119
- if (pending.length === 0) {
120
- emitNoPending({ jsonMode, mode, scope: tableScope });
121
- return { exit: 0, pending, undeterminedScope };
122
- }
123
- return { pending, undeterminedScope };
209
+ const { tableScope, migrationsDir, pendingAll } = ctx;
210
+ if (!tableScope.enabled)
211
+ return { noScopeMatch: false, pending: pendingAll, undeterminedScope: [] };
212
+ if (tableScope.matchCount === 0)
213
+ return { noScopeMatch: true, pending: [], undeterminedScope: [] };
214
+ const scoped = await filterPendingByScope(migrationsDir, pendingAll, new Set(tableScope.matchedTables));
215
+ return { noScopeMatch: false, pending: scoped.inScope, undeterminedScope: scoped.undetermined };
216
+ }
217
+ /** Nothing to apply: say why, with what --retry did. */
218
+ function renderNothingPending(ctx, plan) {
219
+ const { jsonMode, mode, tableScope } = ctx;
220
+ const input = { jsonMode, mode, scope: tableScope, retry: plan.retry };
221
+ if (plan.noScopeMatch)
222
+ emitNoScopeMatch(input);
223
+ else
224
+ emitNoPending(input);
225
+ return 0;
124
226
  }
125
227
  /** Render the pending plan (JSON early-return in plan mode, text otherwise). */
126
- async function renderPlan(ctx, pending, undeterminedScope) {
228
+ async function renderPlan(ctx, plan) {
127
229
  const { jsonMode, executeRequested, mode, tableScope, migrationsDir } = ctx;
230
+ const { pending, undeterminedScope, emptyMigrations, retry } = plan;
128
231
  if (jsonMode && !executeRequested) {
129
- emitPlanJson({ mode, scope: tableScope, pending, undeterminedScope });
232
+ emitPlanJson({ mode, scope: tableScope, pending, undeterminedScope, emptyMigrations, retry });
130
233
  return 0;
131
234
  }
132
235
  if (!jsonMode) {
133
- await renderPlanText({ migrationsDir, scope: tableScope, undeterminedScope, pending });
236
+ await renderPlanText({ migrationsDir, scope: tableScope, undeterminedScope, pending, emptyMigrations, retry });
134
237
  }
135
238
  return undefined;
136
239
  }
240
+ /** Gate: refuse to apply pending files without executable statements; a plan-only run just warns. */
241
+ function runEmptyMigrationGate(ctx, emptyMigrations) {
242
+ const { executeRequested, jsonMode, mode, tableScope } = ctx;
243
+ if (emptyMigrations.length === 0)
244
+ return undefined;
245
+ // A JSON plan already returned from renderPlan, so jsonMode here means --apply.
246
+ const applyPossible = executeRequested || (!jsonMode && !isBackgroundOrCI());
247
+ if (!applyPossible)
248
+ return undefined;
249
+ if (jsonMode) {
250
+ emitEmptyMigrationsBlockedJson({ mode, scope: tableScope, emptyMigrations });
251
+ return 1;
252
+ }
253
+ throw emptyMigrationsError(emptyMigrations);
254
+ }
137
255
  /** Gate 2: in plan mode, stop unless the user confirms an interactive apply. */
138
256
  async function runConfirmGate(ctx) {
139
257
  const { executeRequested, jsonMode } = ctx;
@@ -179,8 +297,11 @@ async function runDestructiveGate(ctx, pending) {
179
297
  return undefined;
180
298
  }
181
299
  /** Apply each pending migration, journal it, and emit the final summary. */
182
- async function applyPending(ctx, pending, undeterminedScope) {
183
- const { jsonMode, migrationsDir, db, journalStore, pluginRuntime, config, tableScope, flags } = ctx;
300
+ async function applyPending(ctx, plan) {
301
+ const { jsonMode, migrationsDir, db, journalStore, pluginRuntime, config, tableScope, flags, settings } = ctx;
302
+ const { pending, undeterminedScope, retry } = plan;
303
+ // Progress lines go to stderr in --json mode, so stdout stays one JSON document.
304
+ const log = jsonMode ? (line) => console.error(line) : (line) => console.log(line);
184
305
  const appliedNow = [];
185
306
  for (const file of pending) {
186
307
  if (!jsonMode)
@@ -194,13 +315,16 @@ async function applyPending(ctx, pending, undeterminedScope) {
194
315
  flags,
195
316
  migrationsDir,
196
317
  file,
318
+ settings,
319
+ retry: retry?.action === 'resume' && retry.migration === file ? retry : undefined,
320
+ log,
197
321
  });
198
322
  appliedNow.push(entry);
199
323
  if (!jsonMode)
200
324
  renderApplied(file);
201
325
  }
202
326
  if (jsonMode) {
203
- emitApplySummaryJson({ scope: tableScope, applied: appliedNow, undeterminedScope });
327
+ emitApplySummaryJson({ scope: tableScope, applied: appliedNow, undeterminedScope, retry });
204
328
  return 0;
205
329
  }
206
330
  renderApplySummary();
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/commands/migrate/command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/commands/migrate/command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Pending migration files without an executable statement (only comments or
3
+ * whitespace), such as a `generate --empty` stub that still waits for its SQL.
4
+ * Measured on the file, before plugins see it: a plugin that removes every
5
+ * statement does so on purpose.
6
+ */
7
+ export declare function findEmptyMigrations(migrationsDir: string, pending: readonly string[]): Promise<string[]>;
8
+ //# sourceMappingURL=empty.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"empty.d.ts","sourceRoot":"","sources":["../../../src/commands/migrate/empty.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,SAAS,MAAM,EAAE,GACzB,OAAO,CAAC,MAAM,EAAE,CAAC,CAQnB"}
@@ -0,0 +1,17 @@
1
+ import { readFile } from 'node:fs/promises';
2
+ import { join } from 'node:path';
3
+ import { extractExecutableStatements } from '../../runtime/safety-markers.js';
4
+ /**
5
+ * Pending migration files without an executable statement (only comments or
6
+ * whitespace), such as a `generate --empty` stub that still waits for its SQL.
7
+ * Measured on the file, before plugins see it: a plugin that removes every
8
+ * statement does so on purpose.
9
+ */
10
+ export async function findEmptyMigrations(migrationsDir, pending) {
11
+ const checks = await Promise.all(pending.map(async (file) => ({
12
+ file,
13
+ empty: extractExecutableStatements(await readFile(join(migrationsDir, file), 'utf8')).length === 0,
14
+ })));
15
+ return checks.filter((check) => check.empty).map((check) => check.file);
16
+ }
17
+ //# sourceMappingURL=empty.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"empty.js","sourceRoot":"","sources":["../../../src/commands/migrate/empty.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAA;AAE7E;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,aAAqB,EACrB,OAA0B;IAE1B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAC3B,IAAI;QACJ,KAAK,EAAE,2BAA2B,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC;KACnG,CAAC,CAAC,CACJ,CAAA;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AACzE,CAAC"}
@@ -0,0 +1,22 @@
1
+ /** Stable `--json` error codes of migrate failures; `bin/chkit.ts` copies them into the error envelope. */
2
+ export type MigrateErrorCode = 'invalid_usage' | 'migration_not_found' | 'migration_not_in_progress' | 'migration_already_applied' | 'retry_mismatch' | 'in_progress_checksum_mismatch';
3
+ /** A migrate failure with a stable code for `--json` consumers. */
4
+ export declare class MigrateError extends Error {
5
+ readonly code: MigrateErrorCode;
6
+ constructor(code: MigrateErrorCode, message: string);
7
+ }
8
+ export declare const EMPTY_MIGRATIONS_SUMMARY = "Pending migrations contain no executable statements. Add SQL statements to each file or delete it.";
9
+ /**
10
+ * An in-progress migration whose file changed after some of its statements
11
+ * completed or started. Without --retry, chkit cannot tell whether the
12
+ * statements that ran still match the file.
13
+ */
14
+ export declare function inProgressChecksumMismatchError(input: {
15
+ migration: string;
16
+ journalChecksum: string;
17
+ fileChecksum: string;
18
+ async: boolean;
19
+ }): MigrateError;
20
+ /** Text-mode refusal of pending files without executable statements. */
21
+ export declare function emptyMigrationsError(files: readonly string[]): Error;
22
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/commands/migrate/errors.ts"],"names":[],"mappings":"AAAA,2GAA2G;AAC3G,MAAM,MAAM,gBAAgB,GACxB,eAAe,GACf,qBAAqB,GACrB,2BAA2B,GAC3B,2BAA2B,GAC3B,gBAAgB,GAChB,+BAA+B,CAAA;AAEnC,mEAAmE;AACnE,qBAAa,YAAa,SAAQ,KAAK;IACrC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAA;gBAEnB,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM;CAKpD;AAED,eAAO,MAAM,wBAAwB,uGACiE,CAAA;AAEtG;;;;GAIG;AACH,wBAAgB,+BAA+B,CAAC,KAAK,EAAE;IACrD,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,MAAM,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,OAAO,CAAA;CACf,GAAG,YAAY,CAUf;AAED,wEAAwE;AACxE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,KAAK,CAOpE"}
@@ -0,0 +1,31 @@
1
+ /** A migrate failure with a stable code for `--json` consumers. */
2
+ export class MigrateError extends Error {
3
+ code;
4
+ constructor(code, message) {
5
+ super(message);
6
+ this.name = 'MigrateError';
7
+ this.code = code;
8
+ }
9
+ }
10
+ export const EMPTY_MIGRATIONS_SUMMARY = 'Pending migrations contain no executable statements. Add SQL statements to each file or delete it.';
11
+ /**
12
+ * An in-progress migration whose file changed after some of its statements
13
+ * completed or started. Without --retry, chkit cannot tell whether the
14
+ * statements that ran still match the file.
15
+ */
16
+ export function inProgressChecksumMismatchError(input) {
17
+ const { migration } = input;
18
+ const stateLabel = input.async ? 'in-progress async journal state' : 'in-progress journal state';
19
+ return new MigrateError('in_progress_checksum_mismatch', `Migration ${migration} has ${stateLabel} for checksum ${input.journalChecksum}, but the current file checksum is ${input.fileChecksum}: the file changed after some of its statements had run.\n` +
20
+ ` Resume with the edited file (completed statements are skipped): chkit migrate --apply --retry ${migration}\n` +
21
+ ` Or discard the partial run, so the next apply starts the file over: chkit migrate --apply --abandon ${migration}\n` +
22
+ ' Or restore the original file content and re-run chkit migrate --apply.');
23
+ }
24
+ /** Text-mode refusal of pending files without executable statements. */
25
+ export function emptyMigrationsError(files) {
26
+ return new Error('Cannot apply: these pending migrations contain no executable statements (only comments or whitespace):\n' +
27
+ `${files.map((file) => ` - ${file}`).join('\n')}\n` +
28
+ 'An empty migration would be recorded as applied, and SQL added to it later would fail the checksum check.\n' +
29
+ 'Add SQL statements to each file or delete it, then re-run chkit migrate --apply.');
30
+ }
31
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/commands/migrate/errors.ts"],"names":[],"mappings":"AASA,mEAAmE;AACnE,MAAM,OAAO,YAAa,SAAQ,KAAK;IAC5B,IAAI,CAAkB;IAE/B,YAAY,IAAsB,EAAE,OAAe;QACjD,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,cAAc,CAAA;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;CACF;AAED,MAAM,CAAC,MAAM,wBAAwB,GACnC,oGAAoG,CAAA;AAEtG;;;;GAIG;AACH,MAAM,UAAU,+BAA+B,CAAC,KAK/C;IACC,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAA;IAC3B,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,2BAA2B,CAAA;IAChG,OAAO,IAAI,YAAY,CACrB,+BAA+B,EAC/B,aAAa,SAAS,QAAQ,UAAU,iBAAiB,KAAK,CAAC,eAAe,sCAAsC,KAAK,CAAC,YAAY,4DAA4D;QAChM,mGAAmG,SAAS,IAAI;QAChH,yGAAyG,SAAS,IAAI;QACtH,0EAA0E,CAC7E,CAAA;AACH,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,oBAAoB,CAAC,KAAwB;IAC3D,OAAO,IAAI,KAAK,CACd,0GAA0G;QACxG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;QACpD,6GAA6G;QAC7G,kFAAkF,CACrF,CAAA;AACH,CAAC"}
@@ -1,6 +1,8 @@
1
1
  import type { TableScope } from '../../plugins.js';
2
2
  import type { MigrationJournalEntry } from '../../runtime/migration-store.js';
3
+ import { type AbandonReport } from './abandon.js';
3
4
  import type { DestructiveScan } from './destructive.js';
5
+ import type { RetryResolution } from './retry.js';
4
6
  export type MigrateMode = 'plan' | 'execute';
5
7
  interface ChecksumMismatch {
6
8
  name: string;
@@ -16,23 +18,29 @@ export declare function emitNoScopeMatch(input: {
16
18
  jsonMode: boolean;
17
19
  mode: MigrateMode;
18
20
  scope: TableScope;
21
+ retry: RetryResolution | undefined;
19
22
  }): void;
20
23
  export declare function emitNoPending(input: {
21
24
  jsonMode: boolean;
22
25
  mode: MigrateMode;
23
26
  scope: TableScope;
27
+ retry: RetryResolution | undefined;
24
28
  }): void;
25
29
  export declare function emitPlanJson(input: {
26
30
  mode: MigrateMode;
27
31
  scope: TableScope;
28
32
  pending: string[];
29
33
  undeterminedScope: string[];
34
+ emptyMigrations: string[];
35
+ retry: RetryResolution | undefined;
30
36
  }): void;
31
37
  export declare function renderPlanText(input: {
32
38
  migrationsDir: string;
33
39
  scope: TableScope;
34
40
  undeterminedScope: string[];
35
41
  pending: string[];
42
+ emptyMigrations: string[];
43
+ retry: RetryResolution | undefined;
36
44
  }): Promise<void>;
37
45
  export declare function renderPlanOnlyNotice(): void;
38
46
  export declare function emitDestructiveBlockedJson(input: {
@@ -46,7 +54,30 @@ export declare function emitApplySummaryJson(input: {
46
54
  scope: TableScope;
47
55
  applied: MigrationJournalEntry[];
48
56
  undeterminedScope: string[];
57
+ retry: RetryResolution | undefined;
49
58
  }): void;
50
59
  export declare function renderApplySummary(): void;
60
+ export declare function emitEmptyMigrationsBlockedJson(input: {
61
+ mode: MigrateMode;
62
+ scope: TableScope;
63
+ emptyMigrations: string[];
64
+ }): void;
65
+ export declare function emitAbandonJson(input: {
66
+ mode: MigrateMode;
67
+ scope: TableScope;
68
+ abandon: AbandonReport;
69
+ }): void;
70
+ /**
71
+ * The --abandon report: what stays applied in ClickHouse, what failed or was
72
+ * interrupted, and how to continue. `performed` is false for the preview. A
73
+ * statement an earlier --abandon marked failed is reported by the status it
74
+ * had before, so a statement that completed still shows as applied.
75
+ */
76
+ export declare function renderAbandonText(report: AbandonReport, input: {
77
+ performed: boolean;
78
+ fileExists: boolean;
79
+ snapshotFile: string;
80
+ }): void;
81
+ export declare function renderAbandonPlanOnlyNotice(): void;
51
82
  export {};
52
83
  //# sourceMappingURL=output.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../src/commands/migrate/output.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAIlD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AAC7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAEvD,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,SAAS,CAAA;AAE5C,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE;IAC9C,IAAI,EAAE,WAAW,CAAA;IACjB,KAAK,EAAE,UAAU,CAAA;IACjB,kBAAkB,EAAE,gBAAgB,EAAE,CAAA;CACvC,GAAG,IAAI,CAOP;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACtC,QAAQ,EAAE,OAAO,CAAA;IACjB,IAAI,EAAE,WAAW,CAAA;IACjB,KAAK,EAAE,UAAU,CAAA;CAClB,GAAG,IAAI,CAaP;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE;IACnC,QAAQ,EAAE,OAAO,CAAA;IACjB,IAAI,EAAE,WAAW,CAAA;IACjB,KAAK,EAAE,UAAU,CAAA;CAClB,GAAG,IAAI,CAMP;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE;IAClC,IAAI,EAAE,WAAW,CAAA;IACjB,KAAK,EAAE,UAAU,CAAA;IACjB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,iBAAiB,EAAE,MAAM,EAAE,CAAA;CAC5B,GAAG,IAAI,CASP;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE;IAC1C,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,UAAU,CAAA;IACjB,iBAAiB,EAAE,MAAM,EAAE,CAAA;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBhB;AAED,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,KAAK,EAAE,UAAU,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,eAAe,CAAA;CAC7B,GAAG,IAAI,CAQP;AAED,wBAAsB,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI3F;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEhD;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,KAAK,EAAE,UAAU,CAAA;IACjB,OAAO,EAAE,qBAAqB,EAAE,CAAA;IAChC,iBAAiB,EAAE,MAAM,EAAE,CAAA;CAC5B,GAAG,IAAI,CASP;AAED,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC"}
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../src/commands/migrate/output.ts"],"names":[],"mappings":"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"}