chkit 0.1.2-beta.5 → 0.2.0-beta.11

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 (305) hide show
  1. package/README.md +69 -56
  2. package/dist/bin/chkit.js +57 -26
  3. package/dist/bin/chkit.js.map +1 -1
  4. package/dist/commands/drift/compare.d.ts +26 -2
  5. package/dist/commands/drift/compare.d.ts.map +1 -1
  6. package/dist/commands/drift/compare.js +147 -41
  7. package/dist/commands/drift/compare.js.map +1 -1
  8. package/dist/commands/drift/payload.d.ts.map +1 -1
  9. package/dist/commands/drift/payload.js +39 -8
  10. package/dist/commands/drift/payload.js.map +1 -1
  11. package/dist/commands/generate/command.d.ts.map +1 -1
  12. package/dist/commands/generate/command.js +20 -22
  13. package/dist/commands/generate/command.js.map +1 -1
  14. package/dist/commands/generate/dictionary-password-warnings.d.ts +3 -0
  15. package/dist/commands/generate/dictionary-password-warnings.d.ts.map +1 -0
  16. package/dist/commands/generate/dictionary-password-warnings.js +7 -0
  17. package/dist/commands/generate/dictionary-password-warnings.js.map +1 -0
  18. package/dist/commands/generate/output.d.ts +2 -2
  19. package/dist/commands/generate/output.d.ts.map +1 -1
  20. package/dist/commands/generate/output.js +8 -2
  21. package/dist/commands/generate/output.js.map +1 -1
  22. package/dist/commands/generate/plan-pipeline.d.ts +2 -1
  23. package/dist/commands/generate/plan-pipeline.d.ts.map +1 -1
  24. package/dist/commands/generate/plan-pipeline.js +69 -27
  25. package/dist/commands/generate/plan-pipeline.js.map +1 -1
  26. package/dist/commands/generate/rename-mappings.d.ts +14 -0
  27. package/dist/commands/generate/rename-mappings.d.ts.map +1 -1
  28. package/dist/commands/generate/rename-mappings.js +131 -19
  29. package/dist/commands/generate/rename-mappings.js.map +1 -1
  30. package/dist/commands/init.d.ts +2 -0
  31. package/dist/commands/init.d.ts.map +1 -1
  32. package/dist/commands/init.js +21 -4
  33. package/dist/commands/init.js.map +1 -1
  34. package/dist/commands/migrate/abandon.d.ts +38 -0
  35. package/dist/commands/migrate/abandon.d.ts.map +1 -0
  36. package/dist/commands/migrate/abandon.js +75 -0
  37. package/dist/commands/migrate/abandon.js.map +1 -0
  38. package/dist/commands/migrate/apply.d.ts +7 -0
  39. package/dist/commands/migrate/apply.d.ts.map +1 -1
  40. package/dist/commands/migrate/apply.js +45 -6
  41. package/dist/commands/migrate/apply.js.map +1 -1
  42. package/dist/commands/migrate/async-apply.d.ts.map +1 -1
  43. package/dist/commands/migrate/async-apply.js +78 -16
  44. package/dist/commands/migrate/async-apply.js.map +1 -1
  45. package/dist/commands/migrate/command.d.ts +44 -1
  46. package/dist/commands/migrate/command.d.ts.map +1 -1
  47. package/dist/commands/migrate/command.js +148 -34
  48. package/dist/commands/migrate/command.js.map +1 -1
  49. package/dist/commands/migrate/empty.d.ts +8 -0
  50. package/dist/commands/migrate/empty.d.ts.map +1 -0
  51. package/dist/commands/migrate/empty.js +17 -0
  52. package/dist/commands/migrate/empty.js.map +1 -0
  53. package/dist/commands/migrate/errors.d.ts +22 -0
  54. package/dist/commands/migrate/errors.d.ts.map +1 -0
  55. package/dist/commands/migrate/errors.js +31 -0
  56. package/dist/commands/migrate/errors.js.map +1 -0
  57. package/dist/commands/migrate/output.d.ts +31 -0
  58. package/dist/commands/migrate/output.d.ts.map +1 -1
  59. package/dist/commands/migrate/output.js +120 -9
  60. package/dist/commands/migrate/output.js.map +1 -1
  61. package/dist/commands/migrate/prompts.d.ts +1 -0
  62. package/dist/commands/migrate/prompts.d.ts.map +1 -1
  63. package/dist/commands/migrate/prompts.js +3 -0
  64. package/dist/commands/migrate/prompts.js.map +1 -1
  65. package/dist/commands/migrate/recovery.d.ts +90 -0
  66. package/dist/commands/migrate/recovery.d.ts.map +1 -0
  67. package/dist/commands/migrate/recovery.js +163 -0
  68. package/dist/commands/migrate/recovery.js.map +1 -0
  69. package/dist/commands/migrate/retry.d.ts +37 -0
  70. package/dist/commands/migrate/retry.d.ts.map +1 -0
  71. package/dist/commands/migrate/retry.js +46 -0
  72. package/dist/commands/migrate/retry.js.map +1 -0
  73. package/dist/commands/plugin.js +3 -1
  74. package/dist/commands/plugin.js.map +1 -1
  75. package/dist/commands/registry.d.ts +2 -0
  76. package/dist/commands/registry.d.ts.map +1 -0
  77. package/dist/commands/registry.js +228 -0
  78. package/dist/commands/registry.js.map +1 -0
  79. package/dist/commands/snapshot/command.d.ts +3 -0
  80. package/dist/commands/snapshot/command.d.ts.map +1 -0
  81. package/dist/commands/snapshot/command.js +32 -0
  82. package/dist/commands/snapshot/command.js.map +1 -0
  83. package/dist/commands/snapshot/output.d.ts +24 -0
  84. package/dist/commands/snapshot/output.d.ts.map +1 -0
  85. package/dist/commands/snapshot/output.js +86 -0
  86. package/dist/commands/snapshot/output.js.map +1 -0
  87. package/dist/commands/snapshot/rebuild.d.ts +19 -0
  88. package/dist/commands/snapshot/rebuild.d.ts.map +1 -0
  89. package/dist/commands/snapshot/rebuild.js +77 -0
  90. package/dist/commands/snapshot/rebuild.js.map +1 -0
  91. package/dist/internal-plugins/core/plugin.d.ts.map +1 -1
  92. package/dist/internal-plugins/core/plugin.js +2 -0
  93. package/dist/internal-plugins/core/plugin.js.map +1 -1
  94. package/dist/registry/build.d.ts +17 -0
  95. package/dist/registry/build.d.ts.map +1 -0
  96. package/dist/registry/build.js +94 -0
  97. package/dist/registry/build.js.map +1 -0
  98. package/dist/registry/dependencies.d.ts +19 -0
  99. package/dist/registry/dependencies.d.ts.map +1 -0
  100. package/dist/registry/dependencies.js +105 -0
  101. package/dist/registry/dependencies.js.map +1 -0
  102. package/dist/registry/files.d.ts +4 -0
  103. package/dist/registry/files.d.ts.map +1 -0
  104. package/dist/registry/files.js +33 -0
  105. package/dist/registry/files.js.map +1 -0
  106. package/dist/registry/install.d.ts +55 -0
  107. package/dist/registry/install.d.ts.map +1 -0
  108. package/dist/registry/install.js +175 -0
  109. package/dist/registry/install.js.map +1 -0
  110. package/dist/registry/model.d.ts +172 -0
  111. package/dist/registry/model.d.ts.map +1 -0
  112. package/dist/registry/model.js +161 -0
  113. package/dist/registry/model.js.map +1 -0
  114. package/dist/registry/project-config.d.ts +18 -0
  115. package/dist/registry/project-config.d.ts.map +1 -0
  116. package/dist/registry/project-config.js +337 -0
  117. package/dist/registry/project-config.js.map +1 -0
  118. package/dist/registry/resolve.d.ts +7 -0
  119. package/dist/registry/resolve.d.ts.map +1 -0
  120. package/dist/registry/resolve.js +129 -0
  121. package/dist/registry/resolve.js.map +1 -0
  122. package/dist/runtime/argv.d.ts +3 -0
  123. package/dist/runtime/argv.d.ts.map +1 -0
  124. package/dist/runtime/argv.js +29 -0
  125. package/dist/runtime/argv.js.map +1 -0
  126. package/dist/runtime/command-dispatch.d.ts.map +1 -1
  127. package/dist/runtime/command-dispatch.js +5 -0
  128. package/dist/runtime/command-dispatch.js.map +1 -1
  129. package/dist/runtime/config-merge.d.ts.map +1 -1
  130. package/dist/runtime/config-merge.js +2 -1
  131. package/dist/runtime/config-merge.js.map +1 -1
  132. package/dist/runtime/global-flags.d.ts +4 -0
  133. package/dist/runtime/global-flags.d.ts.map +1 -1
  134. package/dist/runtime/global-flags.js +1 -0
  135. package/dist/runtime/global-flags.js.map +1 -1
  136. package/dist/runtime/help.d.ts.map +1 -1
  137. package/dist/runtime/help.js +3 -0
  138. package/dist/runtime/help.js.map +1 -1
  139. package/dist/runtime/journal-store.d.ts.map +1 -1
  140. package/dist/runtime/journal-store.js +55 -26
  141. package/dist/runtime/journal-store.js.map +1 -1
  142. package/dist/runtime/json-output.d.ts +1 -1
  143. package/dist/runtime/json-output.d.ts.map +1 -1
  144. package/dist/runtime/json-output.js.map +1 -1
  145. package/dist/runtime/migration-store.d.ts +1 -1
  146. package/dist/runtime/migration-store.d.ts.map +1 -1
  147. package/dist/runtime/migration-store.js +17 -16
  148. package/dist/runtime/migration-store.js.map +1 -1
  149. package/dist/runtime/plugin-runtime/executor-debug.d.ts.map +1 -1
  150. package/dist/runtime/plugin-runtime/executor-debug.js +2 -0
  151. package/dist/runtime/plugin-runtime/executor-debug.js.map +1 -1
  152. package/dist/runtime/plugin-runtime/loader.js +1 -1
  153. package/dist/runtime/plugin-runtime/loader.js.map +1 -1
  154. package/dist/runtime/safety-markers.d.ts.map +1 -1
  155. package/dist/runtime/safety-markers.js +13 -2
  156. package/dist/runtime/safety-markers.js.map +1 -1
  157. package/dist/runtime/schema-loader.d.ts +20 -1
  158. package/dist/runtime/schema-loader.d.ts.map +1 -1
  159. package/dist/runtime/schema-loader.js +26 -0
  160. package/dist/runtime/schema-loader.js.map +1 -1
  161. package/dist/runtime/snapshot-document.d.ts +33 -0
  162. package/dist/runtime/snapshot-document.d.ts.map +1 -0
  163. package/dist/runtime/snapshot-document.js +65 -0
  164. package/dist/runtime/snapshot-document.js.map +1 -0
  165. package/package.json +17 -7
  166. package/dist/bin/clickhouse-resource.d.ts +0 -4
  167. package/dist/bin/clickhouse-resource.d.ts.map +0 -1
  168. package/dist/bin/clickhouse-resource.js +0 -11
  169. package/dist/bin/clickhouse-resource.js.map +0 -1
  170. package/dist/bin/command-dispatch.d.ts +0 -13
  171. package/dist/bin/command-dispatch.d.ts.map +0 -1
  172. package/dist/bin/command-dispatch.js +0 -186
  173. package/dist/bin/command-dispatch.js.map +0 -1
  174. package/dist/bin/command-registry.d.ts +0 -34
  175. package/dist/bin/command-registry.d.ts.map +0 -1
  176. package/dist/bin/command-registry.js +0 -87
  177. package/dist/bin/command-registry.js.map +0 -1
  178. package/dist/bin/commands/check.d.ts +0 -3
  179. package/dist/bin/commands/check.d.ts.map +0 -1
  180. package/dist/bin/commands/check.js +0 -181
  181. package/dist/bin/commands/check.js.map +0 -1
  182. package/dist/bin/commands/codegen.d.ts +0 -2
  183. package/dist/bin/commands/codegen.d.ts.map +0 -1
  184. package/dist/bin/commands/codegen.js +0 -25
  185. package/dist/bin/commands/codegen.js.map +0 -1
  186. package/dist/bin/commands/drift.d.ts +0 -27
  187. package/dist/bin/commands/drift.d.ts.map +0 -1
  188. package/dist/bin/commands/drift.js +0 -220
  189. package/dist/bin/commands/drift.js.map +0 -1
  190. package/dist/bin/commands/generate/output.d.ts +0 -8
  191. package/dist/bin/commands/generate/output.d.ts.map +0 -1
  192. package/dist/bin/commands/generate/output.js +0 -58
  193. package/dist/bin/commands/generate/output.js.map +0 -1
  194. package/dist/bin/commands/generate/plan-pipeline.d.ts +0 -7
  195. package/dist/bin/commands/generate/plan-pipeline.d.ts.map +0 -1
  196. package/dist/bin/commands/generate/plan-pipeline.js +0 -143
  197. package/dist/bin/commands/generate/plan-pipeline.js.map +0 -1
  198. package/dist/bin/commands/generate/rename-mappings.d.ts +0 -29
  199. package/dist/bin/commands/generate/rename-mappings.d.ts.map +0 -1
  200. package/dist/bin/commands/generate/rename-mappings.js +0 -195
  201. package/dist/bin/commands/generate/rename-mappings.js.map +0 -1
  202. package/dist/bin/commands/generate.d.ts +0 -3
  203. package/dist/bin/commands/generate.d.ts.map +0 -1
  204. package/dist/bin/commands/generate.js +0 -158
  205. package/dist/bin/commands/generate.js.map +0 -1
  206. package/dist/bin/commands/init.d.ts +0 -2
  207. package/dist/bin/commands/init.d.ts.map +0 -1
  208. package/dist/bin/commands/init.js +0 -12
  209. package/dist/bin/commands/init.js.map +0 -1
  210. package/dist/bin/commands/migrate.d.ts +0 -3
  211. package/dist/bin/commands/migrate.d.ts.map +0 -1
  212. package/dist/bin/commands/migrate.js +0 -288
  213. package/dist/bin/commands/migrate.js.map +0 -1
  214. package/dist/bin/commands/plugin-like.d.ts +0 -38
  215. package/dist/bin/commands/plugin-like.d.ts.map +0 -1
  216. package/dist/bin/commands/plugin-like.js +0 -101
  217. package/dist/bin/commands/plugin-like.js.map +0 -1
  218. package/dist/bin/commands/plugin.d.ts +0 -3
  219. package/dist/bin/commands/plugin.d.ts.map +0 -1
  220. package/dist/bin/commands/plugin.js +0 -148
  221. package/dist/bin/commands/plugin.js.map +0 -1
  222. package/dist/bin/commands/pull.d.ts +0 -2
  223. package/dist/bin/commands/pull.d.ts.map +0 -1
  224. package/dist/bin/commands/pull.js +0 -25
  225. package/dist/bin/commands/pull.js.map +0 -1
  226. package/dist/bin/commands/status.d.ts +0 -3
  227. package/dist/bin/commands/status.d.ts.map +0 -1
  228. package/dist/bin/commands/status.js +0 -63
  229. package/dist/bin/commands/status.js.map +0 -1
  230. package/dist/bin/commands/typegen.d.ts +0 -2
  231. package/dist/bin/commands/typegen.d.ts.map +0 -1
  232. package/dist/bin/commands/typegen.js +0 -25
  233. package/dist/bin/commands/typegen.js.map +0 -1
  234. package/dist/bin/config.d.ts +0 -13
  235. package/dist/bin/config.d.ts.map +0 -1
  236. package/dist/bin/config.js +0 -48
  237. package/dist/bin/config.js.map +0 -1
  238. package/dist/bin/debug.d.ts +0 -3
  239. package/dist/bin/debug.d.ts.map +0 -1
  240. package/dist/bin/debug.js +0 -14
  241. package/dist/bin/debug.js.map +0 -1
  242. package/dist/bin/global-flags.d.ts +0 -16
  243. package/dist/bin/global-flags.d.ts.map +0 -1
  244. package/dist/bin/global-flags.js +0 -7
  245. package/dist/bin/global-flags.js.map +0 -1
  246. package/dist/bin/help.d.ts +0 -5
  247. package/dist/bin/help.d.ts.map +0 -1
  248. package/dist/bin/help.js +0 -84
  249. package/dist/bin/help.js.map +0 -1
  250. package/dist/bin/internal-plugins/index.d.ts +0 -3
  251. package/dist/bin/internal-plugins/index.d.ts.map +0 -1
  252. package/dist/bin/internal-plugins/index.js +0 -5
  253. package/dist/bin/internal-plugins/index.js.map +0 -1
  254. package/dist/bin/internal-plugins/skill-hint.d.ts +0 -31
  255. package/dist/bin/internal-plugins/skill-hint.d.ts.map +0 -1
  256. package/dist/bin/internal-plugins/skill-hint.js +0 -172
  257. package/dist/bin/internal-plugins/skill-hint.js.map +0 -1
  258. package/dist/bin/journal-store.d.ts +0 -10
  259. package/dist/bin/journal-store.d.ts.map +0 -1
  260. package/dist/bin/journal-store.js +0 -137
  261. package/dist/bin/journal-store.js.map +0 -1
  262. package/dist/bin/json-output.d.ts +0 -5
  263. package/dist/bin/json-output.d.ts.map +0 -1
  264. package/dist/bin/json-output.js +0 -21
  265. package/dist/bin/json-output.js.map +0 -1
  266. package/dist/bin/lib.d.ts +0 -5
  267. package/dist/bin/lib.d.ts.map +0 -1
  268. package/dist/bin/lib.js +0 -5
  269. package/dist/bin/lib.js.map +0 -1
  270. package/dist/bin/logging.d.ts +0 -3
  271. package/dist/bin/logging.d.ts.map +0 -1
  272. package/dist/bin/logging.js +0 -31
  273. package/dist/bin/logging.js.map +0 -1
  274. package/dist/bin/migration-store.d.ts +0 -22
  275. package/dist/bin/migration-store.d.ts.map +0 -1
  276. package/dist/bin/migration-store.js +0 -60
  277. package/dist/bin/migration-store.js.map +0 -1
  278. package/dist/bin/plugin-runtime.d.ts +0 -45
  279. package/dist/bin/plugin-runtime.d.ts.map +0 -1
  280. package/dist/bin/plugin-runtime.js +0 -513
  281. package/dist/bin/plugin-runtime.js.map +0 -1
  282. package/dist/bin/safety-markers.d.ts +0 -23
  283. package/dist/bin/safety-markers.d.ts.map +0 -1
  284. package/dist/bin/safety-markers.js +0 -85
  285. package/dist/bin/safety-markers.js.map +0 -1
  286. package/dist/bin/schema-loader.d.ts +0 -3
  287. package/dist/bin/schema-loader.d.ts.map +0 -1
  288. package/dist/bin/schema-loader.js +0 -11
  289. package/dist/bin/schema-loader.js.map +0 -1
  290. package/dist/bin/table-scope.d.ts +0 -38
  291. package/dist/bin/table-scope.d.ts.map +0 -1
  292. package/dist/bin/table-scope.js +0 -167
  293. package/dist/bin/table-scope.js.map +0 -1
  294. package/dist/bin/version.d.ts +0 -2
  295. package/dist/bin/version.d.ts.map +0 -1
  296. package/dist/bin/version.js +0 -5
  297. package/dist/bin/version.js.map +0 -1
  298. package/dist/drift-diff.d.ts +0 -8
  299. package/dist/drift-diff.d.ts.map +0 -1
  300. package/dist/drift-diff.js +0 -46
  301. package/dist/drift-diff.js.map +0 -1
  302. package/dist/drift.d.ts +0 -66
  303. package/dist/drift.d.ts.map +0 -1
  304. package/dist/drift.js +0 -220
  305. package/dist/drift.js.map +0 -1
@@ -2,13 +2,29 @@ import process from 'node:process';
2
2
  import { relative, resolve } from 'node:path';
3
3
  import { DEFAULT_CONFIG_FILE, writeIfMissing } from '../runtime/config.js';
4
4
  import { ensureProjectDependencies } from '../runtime/deps.js';
5
+ /** The example schema `init` writes to src/db/schema/example.ts. */
6
+ export const INIT_SCHEMA_TEMPLATE = `import { schema, table } from '@chkit/core'\n\n// Offline generation still needs the real schema namespace.\nconst database = process.env.CLICKHOUSE_DB\nif (!database?.trim()) {\n throw new Error('Set CLICKHOUSE_DB to the intended database before generating migrations.')\n}\n\nconst events = table({\n database,\n name: 'events',\n engine: 'MergeTree',\n columns: [\n { name: 'id', type: 'UInt64' },\n { name: 'source', type: 'String' },\n { name: 'ingested_at', type: 'DateTime64(3)', default: { expression: 'now64(3)' } },\n ],\n primaryKey: ['id'],\n orderBy: ['id'],\n partitionBy: 'toYYYYMM(ingested_at)',\n})\n\nexport default schema(events)\n`;
5
7
  export async function cmdInit(argv = []) {
8
+ if (argv.includes('--help') || argv.includes('-h')) {
9
+ console.log(`chkit init [options]
10
+
11
+ Create a TypeScript config and example schema; install project dependencies.
12
+
13
+ -y, --yes Skip interactive onboarding
14
+ --connect <choice> claim, account, clickhouse, or later
15
+ --email <email> Email for account onboarding
16
+ --code <code> Verification code
17
+ --org-name <name> Organization name
18
+ -h, --help Show help without creating files or connecting
19
+ `);
20
+ return;
21
+ }
6
22
  const cwd = process.cwd();
7
23
  const configPath = resolve(cwd, DEFAULT_CONFIG_FILE);
8
24
  const schemaPath = resolve(cwd, 'src/db/schema/example.ts');
9
25
  const options = parseInitOptions(argv);
10
- const wroteConfig = await writeIfMissing(configPath, `import { defineConfig } from '@chkit/core'\n\nexport default defineConfig({\n schema: './src/db/schema/**/*.ts',\n outDir: './chkit',\n migrationsDir: './chkit/migrations',\n metaDir: './chkit/meta',\n plugins: [\n // Register plugins inline. Example:\n // import { codegen } from '@chkit/plugin-codegen'\n // codegen({ emitZod: true }),\n ],\n clickhouse: {\n url: process.env.CLICKHOUSE_URL ?? 'http://localhost:8123',\n username: process.env.CLICKHOUSE_USER ?? 'default',\n password: process.env.CLICKHOUSE_PASSWORD ?? '',\n database: process.env.CLICKHOUSE_DB ?? 'default',\n },\n})\n`);
11
- const wroteSchema = await writeIfMissing(schemaPath, `import { schema, table } from '@chkit/core'\n\nconst events = table({\n database: 'default',\n name: 'events',\n engine: 'MergeTree',\n columns: [\n { name: 'id', type: 'UInt64' },\n { name: 'source', type: 'String' },\n { name: 'ingested_at', type: 'DateTime64(3)', default: 'fn:now64(3)' },\n ],\n primaryKey: ['id'],\n orderBy: ['id'],\n partitionBy: 'toYYYYMM(ingested_at)',\n})\n\nexport default schema(events)\n`);
26
+ const wroteConfig = await writeIfMissing(configPath, `import { defineConfig } from '@chkit/core'\n\nfunction requiredEnv(name: string): string {\n const value = process.env[name]\n if (value === undefined || (name !== 'CLICKHOUSE_PASSWORD' && value.trim() === '')) {\n throw new Error(\`Set \${name} explicitly before connecting to ClickHouse (an empty password is allowed).\`)\n }\n return value\n}\n\nexport default defineConfig({\n schema: './src/db/schema/**/*.ts',\n outDir: './chkit',\n migrationsDir: './chkit/migrations',\n metaDir: './chkit/meta',\n plugins: [\n // Register plugins inline. Example:\n // import { codegen } from '@chkit/plugin-codegen'\n // codegen({ emitZod: true }),\n ],\n // Preserve an explicitly supplied target for offline generation as well.\n // Without a URL, a registered provider plugin may supply the connection.\n clickhouse: process.env.CLICKHOUSE_URL ? {\n url: requiredEnv('CLICKHOUSE_URL'),\n username: requiredEnv('CLICKHOUSE_USER'),\n password: requiredEnv('CLICKHOUSE_PASSWORD'),\n database: requiredEnv('CLICKHOUSE_DB'),\n cluster: process.env.CLICKHOUSE_CLUSTER,\n } : undefined,\n})\n`);
27
+ const wroteSchema = await writeIfMissing(schemaPath, INIT_SCHEMA_TEMPLATE);
12
28
  if (wroteConfig)
13
29
  console.log(`Created ${relative(cwd, configPath)}`);
14
30
  if (wroteSchema)
@@ -24,10 +40,11 @@ export async function cmdInit(argv = []) {
24
40
  if (wroteConfig || wroteSchema) {
25
41
  console.log('');
26
42
  console.log('Next steps:');
27
- console.log(' 1. Set CLICKHOUSE_URL (and CLICKHOUSE_USER / CLICKHOUSE_PASSWORD / CLICKHOUSE_DB if needed).');
43
+ console.log(' 1. Set CLICKHOUSE_DB to the intended database before generating migrations.');
28
44
  console.log(' 2. Edit src/db/schema/example.ts to match your data.');
29
45
  console.log(' 3. Run: npx chkit generate --name init');
30
- console.log(' 4. Run: npx chkit migrate --apply');
46
+ console.log(' 4. Set CLICKHOUSE_URL, CLICKHOUSE_USER, and CLICKHOUSE_PASSWORD explicitly before connecting.');
47
+ console.log(' 5. Run: npx chkit migrate --apply');
31
48
  console.log('');
32
49
  console.log('Docs: https://chkit.obsessiondb.com/getting-started/add-to-existing-project/');
33
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAE7C,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAI9D,oEAAoE;AACpE,MAAM,CAAC,MAAM,oBAAoB,GAAG,8pBAA8pB,CAAA;AAUlsB,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAiB,EAAE;IAC/C,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;CAUf,CAAC,CAAA;QACE,OAAM;IACR,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IACzB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAA;IACpD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,0BAA0B,CAAC,CAAA;IAC3D,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;IAEtC,MAAM,WAAW,GAAG,MAAM,cAAc,CACtC,UAAU,EACV,mmCAAmmC,CACpmC,CAAA;IAED,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAA;IAE1E,IAAI,WAAW;QAAE,OAAO,CAAC,GAAG,CAAC,WAAW,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,CAAC,CAAA;IACpE,IAAI,WAAW;QAAE,OAAO,CAAC,GAAG,CAAC,WAAW,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,CAAC,CAAA;IAEpE,mGAAmG;IACnG,+FAA+F;IAC/F,gGAAgG;IAChG,MAAM,yBAAyB,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IAE/D,0FAA0F;IAC1F,wFAAwF;IACxF,IAAI,MAAM,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC;QAAE,OAAM;IAEzD,IAAI,WAAW,IAAI,WAAW,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACf,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;QAC1B,OAAO,CAAC,GAAG,CAAC,+EAA+E,CAAC,CAAA;QAC5F,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAA;QACrE,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAA;QACvD,OAAO,CAAC,GAAG,CAAC,iGAAiG,CAAC,CAAA;QAC9G,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAA;QAClD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACf,OAAO,CAAC,GAAG,CAAC,8EAA8E,CAAC,CAAA;IAC7F,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,kBAAkB,CAAC,UAAkB,EAAE,OAAoB;IACxE,0FAA0F;IAC1F,6FAA6F;IAC7F,yFAAyF;IACzF,oFAAoF;IACpF,IAAI,OAAO,CAAC,GAAG;QAAE,OAAO,KAAK,CAAA;IAE7B,+FAA+F;IAC/F,gGAAgG;IAChG,mFAAmF;IACnF,MAAM,GAAG,GAAG,MAAM,oBAAoB,EAAE,CAAA;IACxC,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAA;IAEtB,MAAM,GAAG,CAAC,aAAa,CAAC;QACtB,UAAU;QACV,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAA;IACF,OAAO,IAAI,CAAA;AACb,CAAC;AAED,KAAK,UAAU,oBAAoB;IAGjC,IAAI,CAAC;QACH,OAAO,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAA;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,oBAAoB,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAA;QAC5C,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc;IAC1C,MAAM,IAAI,GAAI,KAAkC,EAAE,IAAI,CAAA;IACtD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACtE,OAAO,CACL,CAAC,IAAI,KAAK,sBAAsB,IAAI,IAAI,KAAK,kBAAkB,CAAC;QAChE,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAC9C,CAAA;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAc;IACtC,MAAM,OAAO,GAAgB,EAAE,GAAG,EAAE,KAAK,EAAE,CAAA;IAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACrB,IAAI,CAAC,KAAK;YAAE,SAAQ;QACpB,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC7B,MAAM,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QACnD,MAAM,WAAW,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;QAC/D,MAAM,KAAK,GAAG,GAAuB,EAAE,CAAC,WAAW,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;QAEhE,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,CAAC,GAAG,GAAG,IAAI,CAAA;aACpD,IAAI,IAAI,KAAK,WAAW;YAAE,OAAO,CAAC,OAAO,GAAG,KAAK,EAA+B,CAAA;aAChF,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,CAAC,KAAK,GAAG,KAAK,EAAE,CAAA;aAC/C,IAAI,IAAI,KAAK,QAAQ;YAAE,OAAO,CAAC,IAAI,GAAG,KAAK,EAAE,CAAA;aAC7C,IAAI,IAAI,KAAK,YAAY;YAAE,OAAO,CAAC,OAAO,GAAG,KAAK,EAAE,CAAA;IAC3D,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -0,0 +1,38 @@
1
+ import type { JournalStore, MigrationRowState, OperationState, OperationStatus } from '../../runtime/journal-store.js';
2
+ /** What --abandon reports, before and after it resets the journal state. */
3
+ export interface AbandonReport {
4
+ migration: string;
5
+ /** Checksum recorded for the failed attempt. */
6
+ checksum: string;
7
+ /** Statements that completed, including those an earlier --abandon marked failed. */
8
+ completedStatements: number;
9
+ /** The recorded per-statement progress, sorted by statement index. */
10
+ operations: OperationState[];
11
+ }
12
+ /** Read the in-progress state --abandon <migration> resets; throws when there is none. */
13
+ export declare function readAbandonableState(input: {
14
+ migration: string;
15
+ appliedNames: ReadonlySet<string>;
16
+ }, deps: {
17
+ journalStore: JournalStore;
18
+ }): Promise<MigrationRowState>;
19
+ /**
20
+ * Supersede an in-progress state with a version in which every recorded
21
+ * statement failed. The next apply runs the file from statement 1: sync
22
+ * statements run again, and async statements keep their query ids, so they
23
+ * take the retry path (`-- before-retry:` compensation, then a resubmit).
24
+ * Like every journal write this is an INSERT of a newer row version, so it
25
+ * needs no DELETE privilege and leaves no mutation behind.
26
+ */
27
+ export declare function abandonMigrationState(state: MigrationRowState, deps: {
28
+ journalStore: JournalStore;
29
+ now?: () => number;
30
+ }): Promise<void>;
31
+ export declare function abandonReport(state: MigrationRowState): AbandonReport;
32
+ /**
33
+ * The status a statement had before --abandon marked it failed, or its
34
+ * recorded status when no abandon touched it. A statement that completed
35
+ * before an abandon stays applied in ClickHouse.
36
+ */
37
+ export declare function statusBeforeAbandon(op: OperationState): OperationStatus;
38
+ //# sourceMappingURL=abandon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abandon.d.ts","sourceRoot":"","sources":["../../../src/commands/migrate/abandon.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,eAAe,EAChB,MAAM,gCAAgC,CAAA;AAIvC,4EAA4E;AAC5E,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAA;IAChB,qFAAqF;IACrF,mBAAmB,EAAE,MAAM,CAAA;IAC3B,sEAAsE;IACtE,UAAU,EAAE,cAAc,EAAE,CAAA;CAC7B;AAID,0FAA0F;AAC1F,wBAAsB,oBAAoB,CACxC,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CAAE,EAC/D,IAAI,EAAE;IAAE,YAAY,EAAE,YAAY,CAAA;CAAE,GACnC,OAAO,CAAC,iBAAiB,CAAC,CAY5B;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,iBAAiB,EACxB,IAAI,EAAE;IAAE,YAAY,EAAE,YAAY,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CAAE,GACvD,OAAO,CAAC,IAAI,CAAC,CAGf;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,iBAAiB,GAAG,aAAa,CAQrE;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,cAAc,GAAG,eAAe,CAEvE"}
@@ -0,0 +1,75 @@
1
+ import { isoWithoutZone } from './async-apply.js';
2
+ import { MigrateError } from './errors.js';
3
+ const OPERATION_STATUSES = ['completed', 'failed', 'started'];
4
+ /** Read the in-progress state --abandon <migration> resets; throws when there is none. */
5
+ export async function readAbandonableState(input, deps) {
6
+ const { migration } = input;
7
+ if (input.appliedNames.has(migration))
8
+ throw alreadyAppliedError(migration);
9
+ const state = await deps.journalStore.readMigrationState(migration);
10
+ if (state === null) {
11
+ throw new MigrateError('migration_not_in_progress', `Cannot abandon ${migration}: the journal has no in-progress state for it.`);
12
+ }
13
+ if (state.migrationCompleted)
14
+ throw alreadyAppliedError(migration);
15
+ return state;
16
+ }
17
+ /**
18
+ * Supersede an in-progress state with a version in which every recorded
19
+ * statement failed. The next apply runs the file from statement 1: sync
20
+ * statements run again, and async statements keep their query ids, so they
21
+ * take the retry path (`-- before-retry:` compensation, then a resubmit).
22
+ * Like every journal write this is an INSERT of a newer row version, so it
23
+ * needs no DELETE privilege and leaves no mutation behind.
24
+ */
25
+ export async function abandonMigrationState(state, deps) {
26
+ const now = isoWithoutZone(new Date((deps.now ?? Date.now)()));
27
+ await deps.journalStore.writeMigrationState(abandonedState(state, now));
28
+ }
29
+ export function abandonReport(state) {
30
+ const operations = [...state.operations].sort((a, b) => a.operationIndex - b.operationIndex);
31
+ return {
32
+ migration: state.name,
33
+ checksum: state.checksum,
34
+ completedStatements: operations.filter((op) => statusBeforeAbandon(op) === 'completed').length,
35
+ operations,
36
+ };
37
+ }
38
+ /**
39
+ * The status a statement had before --abandon marked it failed, or its
40
+ * recorded status when no abandon touched it. A statement that completed
41
+ * before an abandon stays applied in ClickHouse.
42
+ */
43
+ export function statusBeforeAbandon(op) {
44
+ return abandonedFrom(op) ?? op.status;
45
+ }
46
+ // A statement an earlier --abandon already marked failed keeps that record,
47
+ // so abandoning again does not lose which statements had completed.
48
+ function abandonedState(state, now) {
49
+ return {
50
+ ...state,
51
+ appliedAt: now,
52
+ migrationCompleted: false,
53
+ operations: state.operations.map((op) => abandonedFrom(op) !== undefined
54
+ ? op
55
+ : {
56
+ ...op,
57
+ status: 'failed',
58
+ finishedAt: op.finishedAt ?? now,
59
+ lastError: abandonedError(op.status),
60
+ }),
61
+ };
62
+ }
63
+ /** The status before an earlier --abandon, or undefined when no abandon marked this statement. */
64
+ function abandonedFrom(op) {
65
+ if (op.status !== 'failed')
66
+ return undefined;
67
+ return OPERATION_STATUSES.find((status) => op.lastError === abandonedError(status));
68
+ }
69
+ function abandonedError(previous) {
70
+ return `abandoned via chkit migrate --abandon (was ${previous})`;
71
+ }
72
+ function alreadyAppliedError(migration) {
73
+ return new MigrateError('migration_already_applied', `Cannot abandon ${migration}: it is already applied. --abandon only resets a migration that failed part-way; to undo an applied migration, write a new migration.`);
74
+ }
75
+ //# sourceMappingURL=abandon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abandon.js","sourceRoot":"","sources":["../../../src/commands/migrate/abandon.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,13 @@ export declare function applyMigration(input: {
28
28
  flags: ParsedFlags;
29
29
  migrationsDir: string;
30
30
  file: string;
31
+ /** Set when --retry verified an edit of this in-progress migration before the run (#233). */
32
+ retry?: {
33
+ previousChecksum: string;
34
+ checksum: string;
35
+ };
36
+ /** Progress lines; the command sends them to stderr in --json mode. */
37
+ log?: (line: string) => void;
31
38
  }): Promise<MigrationJournalEntry>;
32
39
  export {};
33
40
  //# sourceMappingURL=apply.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../../src/commands/migrate/apply.ts"],"names":[],"mappings":"AAGA,OAAO,EAAyB,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAClF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE9E,OAAO,KAAK,EACV,kBAAkB,EAInB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAe,KAAK,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AAY1F,KAAK,YAAY,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAYzD,6EAA6E;AAC7E,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,SAAM,GAAG,MAAM,CAG/D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,OAAO,CAAA;CACf,GAAG,KAAK,CAQR;AAsBD,wBAAsB,cAAc,CAAC,KAAK,EAAE;IAC1C,EAAE,EAAE,kBAAkB,CAAA;IACtB,YAAY,EAAE,YAAY,CAAA;IAC1B,aAAa,EAAE,aAAa,CAAA;IAC5B,MAAM,EAAE,iBAAiB,CAAA;IACzB,UAAU,EAAE,UAAU,CAAA;IACtB,KAAK,EAAE,WAAW,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,IAAI,EAAE,MAAM,CAAA;CACb,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAoHjC"}
1
+ {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../../src/commands/migrate/apply.ts"],"names":[],"mappings":"AAGA,OAAO,EAAyB,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAClF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE9E,OAAO,KAAK,EACV,kBAAkB,EAInB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAe,KAAK,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AAsB1F,KAAK,YAAY,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAYzD,6EAA6E;AAC7E,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,SAAM,GAAG,MAAM,CAG/D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,OAAO,CAAA;CACf,GAAG,KAAK,CAQR;AAsBD,wBAAsB,cAAc,CAAC,KAAK,EAAE;IAC1C,EAAE,EAAE,kBAAkB,CAAA;IACtB,YAAY,EAAE,YAAY,CAAA;IAC1B,aAAa,EAAE,aAAa,CAAA;IAC5B,MAAM,EAAE,iBAAiB,CAAA;IACzB,UAAU,EAAE,UAAU,CAAA;IACtB,KAAK,EAAE,WAAW,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,6FAA6F;IAC7F,KAAK,CAAC,EAAE;QAAE,gBAAgB,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;IACtD,uEAAuE;IACvE,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAC7B,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA0HjC"}
@@ -5,6 +5,8 @@ import { debug } from '../../runtime/debug.js';
5
5
  import { checksumSQL } from '../../runtime/migration-store.js';
6
6
  import { extractExecutableStatements, extractMigrationOperationSummaries, } from '../../runtime/safety-markers.js';
7
7
  import { applyAsyncStatement, freshMigrationState, isoWithoutZone, upsertOperation, } from './async-apply.js';
8
+ import { inProgressChecksumMismatchError } from './errors.js';
9
+ import { hasStatementProgress, rebaseInProgressState, retryMismatchError, statementIdentities, statementIdentity, verifyRetryEdit, } from './recovery.js';
8
10
  function operationIsCompleted(state, index) {
9
11
  return (state?.operations.some((op) => op.operationIndex === index && op.status === 'completed') ?? false);
10
12
  }
@@ -44,7 +46,8 @@ function syncOperationState(index, operationType, operationKey, status, lastErro
44
46
  };
45
47
  }
46
48
  export async function applyMigration(input) {
47
- const { db, journalStore, pluginRuntime, config, tableScope, flags, migrationsDir, file } = input;
49
+ const { db, journalStore, pluginRuntime, config, tableScope, flags, migrationsDir, file, retry } = input;
50
+ const log = input.log ?? ((line) => console.log(line));
48
51
  debug('migrate', `applying ${file}`);
49
52
  const sql = await readFile(join(migrationsDir, file), 'utf8');
50
53
  const parsedStatements = extractExecutableStatements(sql);
@@ -63,12 +66,20 @@ export async function applyMigration(input) {
63
66
  // Resume support (#6): if a prior run left per-statement journal state for
64
67
  // this migration, statements already marked completed are skipped instead of
65
68
  // replayed — so a partial failure no longer bricks the migration on re-run
66
- // with "column already exists". Guard against resuming across a file edit.
69
+ // with "column already exists". Resuming across a file edit needs care (#233).
67
70
  const initialState = await journalStore.readMigrationState(file);
68
71
  if (initialState !== null &&
69
72
  !initialState.migrationCompleted &&
70
73
  initialState.checksum !== migrationChecksum) {
71
- throw new Error(`Migration ${file} has in-progress journal state for checksum ${initialState.checksum}, but the current file checksum is ${migrationChecksum}. Restore the original migration file or clear the in-progress journal state before retrying.`);
74
+ await acceptEditedMigration({
75
+ file,
76
+ state: initialState,
77
+ checksum: migrationChecksum,
78
+ identities: statementIdentities(operationSummaries, statements.length),
79
+ retry,
80
+ journalStore,
81
+ log,
82
+ });
72
83
  }
73
84
  for (let i = 0; i < statements.length; i++) {
74
85
  const statement = statements[i];
@@ -85,7 +96,7 @@ export async function applyMigration(input) {
85
96
  operationType: operation.type,
86
97
  operationKey: operation.key,
87
98
  beforeRetry: operation.beforeRetry,
88
- log: (line) => console.log(line),
99
+ log,
89
100
  });
90
101
  }
91
102
  catch (error) {
@@ -101,8 +112,7 @@ export async function applyMigration(input) {
101
112
  debug('migrate', `${file}#${i}: already completed in a prior run — skipping`);
102
113
  continue;
103
114
  }
104
- const opType = operation?.type ?? 'sql_statement';
105
- const opKey = operation?.key ?? `statement:${i}`;
115
+ const { type: opType, key: opKey } = statementIdentity(operationSummaries, i);
106
116
  const baseState = stateBefore ?? freshMigrationState(file, migrationChecksum);
107
117
  await journalStore.writeMigrationState(upsertOperation(baseState, syncOperationState(i, opType, opKey, 'started'), Date.now));
108
118
  try {
@@ -140,4 +150,33 @@ export async function applyMigration(input) {
140
150
  });
141
151
  return entry;
142
152
  }
153
+ // An in-progress migration whose file changed resumes when this run's --retry
154
+ // verified the edit, or when no statement is recorded as completed or started
155
+ // (the first statement failed, or --abandon marked every statement failed):
156
+ // the file then runs again from statement 1. The state is re-keyed to the new
157
+ // checksum before anything runs, so a later failure resumes without --retry.
158
+ async function acceptEditedMigration(input) {
159
+ const { file, state, checksum, identities, retry, journalStore } = input;
160
+ const retryVerified = retry !== undefined && retry.previousChecksum === state.checksum && retry.checksum === checksum;
161
+ if (retryVerified) {
162
+ // --retry checked the file's statements; apply indexes the statements the
163
+ // plugins returned, so check those too.
164
+ const check = verifyRetryEdit(state.operations, identities);
165
+ if (!check.ok)
166
+ throw retryMismatchError(file, check);
167
+ debug('migrate', `${file}: --retry accepted checksum ${state.checksum} → ${checksum}`);
168
+ }
169
+ else if (hasStatementProgress(state)) {
170
+ throw inProgressChecksumMismatchError({
171
+ migration: file,
172
+ journalChecksum: state.checksum,
173
+ fileChecksum: checksum,
174
+ async: false,
175
+ });
176
+ }
177
+ else {
178
+ input.log(`${file} changed since its last failed attempt; no statement is recorded as completed, so it runs again from statement 1.`);
179
+ }
180
+ await journalStore.writeMigrationState(rebaseInProgressState(state, { checksum, identities, appliedAt: isoWithoutZone(new Date()) }));
181
+ }
143
182
  //# sourceMappingURL=apply.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/commands/migrate/apply.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,OAAO,EAAE,qBAAqB,EAA2B,MAAM,mBAAmB,CAAA;AAIlF,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAO9C,OAAO,EAAE,WAAW,EAA8B,MAAM,kCAAkC,CAAA;AAC1F,OAAO,EACL,2BAA2B,EAC3B,kCAAkC,GACnC,MAAM,iCAAiC,CAAA;AACxC,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,eAAe,GAChB,MAAM,kBAAkB,CAAA;AAIzB,SAAS,oBAAoB,CAAC,KAA+B,EAAE,KAAa;IAC1E,OAAO,CACL,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,cAAc,KAAK,KAAK,IAAI,EAAE,CAAC,MAAM,KAAK,WAAW,CAAC,IAAI,KAAK,CAClG,CAAA;AACH,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC/D,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,gBAAgB,CAAC,GAAW,EAAE,GAAG,GAAG,GAAG;IACrD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;IAC/C,OAAO,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAA;AACrE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,KAM9B;IACC,MAAM,OAAO,GAAG,IAAI,KAAK,CACvB,aAAa,KAAK,CAAC,IAAI,wBAAwB,KAAK,CAAC,KAAK,GAAG,CAAC,OAAO,KAAK,CAAC,KAAK,KAAK;QACnF,KAAK,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI;QAC1C,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAC5B,CAAA;IACD,IAAI,KAAK,CAAC,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK;QAAE,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAA;IACxF,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,SAAS,kBAAkB,CACzB,KAAa,EACb,aAAqB,EACrB,YAAoB,EACpB,MAAuB,EACvB,SAAS,GAAG,EAAE;IAEd,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;IAC5C,OAAO;QACL,cAAc,EAAE,KAAK;QACrB,YAAY;QACZ,aAAa;QACb,OAAO,EAAE,EAAE;QACX,MAAM;QACN,SAAS,EAAE,SAAS;QACpB,UAAU,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QACnD,SAAS;KACV,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,KASpC;IACC,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,KAAK,CAAA;IAEjG,KAAK,CAAC,SAAS,EAAE,YAAY,IAAI,EAAE,CAAC,CAAA;IACpC,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAA;IAC7D,MAAM,gBAAgB,GAAG,2BAA2B,CAAC,GAAG,CAAC,CAAA;IACzD,MAAM,kBAAkB,GAAG,kCAAkC,CAAC,GAAG,CAAC,CAAA;IAClE,KAAK,CAAC,SAAS,EAAE,GAAG,IAAI,KAAK,gBAAgB,CAAC,MAAM,gBAAgB,kBAAkB,CAAC,MAAM,aAAa,CAAC,CAAA;IAE3G,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,gBAAgB,CAAC;QACtD,OAAO,EAAE,SAAS;QAClB,MAAM;QACN,UAAU;QACV,KAAK;QACL,SAAS,EAAE,IAAI;QACf,GAAG;QACH,UAAU,EAAE,gBAAgB;KAC7B,CAAC,CAAA;IAEF,MAAM,iBAAiB,GAAG,WAAW,CAAC,GAAG,CAAC,CAAA;IAE1C,2EAA2E;IAC3E,6EAA6E;IAC7E,2EAA2E;IAC3E,2EAA2E;IAC3E,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;IAChE,IACE,YAAY,KAAK,IAAI;QACrB,CAAC,YAAY,CAAC,kBAAkB;QAChC,YAAY,CAAC,QAAQ,KAAK,iBAAiB,EAC3C,CAAC;QACD,MAAM,IAAI,KAAK,CACb,aAAa,IAAI,+CAA+C,YAAY,CAAC,QAAQ,sCAAsC,iBAAiB,+FAA+F,CAC5O,CAAA;IACH,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAW,CAAA;QACzC,MAAM,SAAS,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAA;QACvC,IAAI,SAAS,EAAE,IAAI,KAAK,OAAO,EAAE,CAAC;YAChC,IAAI,CAAC;gBACH,MAAM,mBAAmB,CAAC;oBACxB,EAAE;oBACF,YAAY;oBACZ,GAAG,EAAE,SAAS;oBACd,aAAa,EAAE,IAAI;oBACnB,iBAAiB;oBACjB,cAAc,EAAE,CAAC;oBACjB,aAAa,EAAE,SAAS,CAAC,IAAI;oBAC7B,YAAY,EAAE,SAAS,CAAC,GAAG;oBAC3B,WAAW,EAAE,SAAS,CAAC,WAAW;oBAClC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;iBACjC,CAAC,CAAA;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,cAAc,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAA;YACtF,CAAC;YACD,wEAAwE;YACxE,SAAQ;QACV,CAAC;QACD,2EAA2E;QAC3E,0EAA0E;QAC1E,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;QAC/D,IAAI,oBAAoB,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC;YACzC,KAAK,CAAC,SAAS,EAAE,GAAG,IAAI,IAAI,CAAC,+CAA+C,CAAC,CAAA;YAC7E,SAAQ;QACV,CAAC;QACD,MAAM,MAAM,GAAG,SAAS,EAAE,IAAI,IAAI,eAAe,CAAA;QACjD,MAAM,KAAK,GAAG,SAAS,EAAE,GAAG,IAAI,aAAa,CAAC,EAAE,CAAA;QAChD,MAAM,SAAS,GAAG,WAAW,IAAI,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAA;QAC7E,MAAM,YAAY,CAAC,mBAAmB,CACpC,eAAe,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CACtF,CAAA;QACD,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,CAAC,MAAM,YAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,IAAI,SAAS,CAAA;YAC/E,MAAM,YAAY,CAAC,mBAAmB,CACpC,eAAe,CACb,YAAY,EACZ,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,EACnE,IAAI,CAAC,GAAG,CACT,CACF,CAAA;YACD,MAAM,cAAc,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAA;QACtF,CAAC;QACD,4EAA4E;QAC5E,yEAAyE;QACzE,4EAA4E;QAC5E,0EAA0E;QAC1E,MAAM,UAAU,GAAG,CAAC,MAAM,YAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,IAAI,SAAS,CAAA;QAC7E,MAAM,YAAY,CAAC,mBAAmB,CACpC,eAAe,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CACzF,CAAA;QACD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,qBAAqB,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,CAAA;QAChE,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAA0B;QACnC,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;QACpD,QAAQ,EAAE,iBAAiB;KAC5B,CAAA;IACD,MAAM,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;IAErC,MAAM,aAAa,CAAC,eAAe,CAAC;QAClC,OAAO,EAAE,SAAS;QAClB,MAAM;QACN,UAAU;QACV,KAAK;QACL,SAAS,EAAE,IAAI;QACf,UAAU;QACV,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B,CAAC,CAAA;IAEF,OAAO,KAAK,CAAA;AACd,CAAC"}
1
+ {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/commands/migrate/apply.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"async-apply.d.ts","sourceRoot":"","sources":["../../../src/commands/migrate/async-apply.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAe,MAAM,mBAAmB,CAAA;AAGxE,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACf,MAAM,gCAAgC,CAAA;AAYvC,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,kBAAkB,CAAA;IACtB,YAAY,EAAE,YAAY,CAAA;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,aAAa,EAAE,MAAM,CAAA;IACrB,iBAAiB,EAAE,MAAM,CAAA;IACzB,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACrC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CACnB;AAED,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,cAAc,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,cAAc,CAAA;CAAE,CAAA;AAElD,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA2I3F;AAoJD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,iBAAiB,EACxB,EAAE,EAAE,cAAc,EAClB,GAAG,EAAE,MAAM,MAAM,GAChB,iBAAiB,CAcnB;AAED,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,GACf,iBAAiB,CASnB;AAED,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,GACrB,MAAM,CAWR;AA2BD,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAEjD"}
1
+ {"version":3,"file":"async-apply.d.ts","sourceRoot":"","sources":["../../../src/commands/migrate/async-apply.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAe,MAAM,mBAAmB,CAAA;AAGxE,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACf,MAAM,gCAAgC,CAAA;AA4BvC,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,kBAAkB,CAAA;IACtB,YAAY,EAAE,YAAY,CAAA;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,aAAa,EAAE,MAAM,CAAA;IACrB,iBAAiB,EAAE,MAAM,CAAA;IACzB,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACrC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CACnB;AAED,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,cAAc,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,cAAc,CAAA;CAAE,CAAA;AAElD,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAwI3F;AA+MD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,iBAAiB,EACxB,EAAE,EAAE,cAAc,EAClB,GAAG,EAAE,MAAM,MAAM,GAChB,iBAAiB,CAcnB;AAED,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,GACf,iBAAiB,CASnB;AAED,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,GACrB,MAAM,CAWR;AA2BD,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAEjD"}
@@ -1,6 +1,23 @@
1
1
  import { createHash } from 'node:crypto';
2
+ import { setTimeout as defaultSleep } from 'node:timers/promises';
2
3
  import { debug } from '../../runtime/debug.js';
4
+ import { inProgressChecksumMismatchError } from './errors.js';
5
+ import { hasStatementProgress } from './recovery.js';
3
6
  const POLL_INTERVAL_MS = 5_000;
7
+ // The query id is deterministic, so system.query_log can still hold entries of
8
+ // an earlier attempt of the same statement (one that was abandoned, or retried
9
+ // after an edit). A new submission only trusts entries of queries that started
10
+ // after it, and an attach only those of queries that started no earlier than
11
+ // the attempt it attaches to: query_log is flushed on a timer, so right after
12
+ // that attempt ends the newest flushed entry can still be an earlier
13
+ // attempt's. The bound comes from the server clock, which also stamps
14
+ // query_log, minus a margin for clock skew between replicas. queryStatus
15
+ // compares whole seconds, so the margin stays more than a second below
16
+ // POLL_INTERVAL_MS: an earlier attempt that a previous run polled to its end
17
+ // started at least one poll interval ago and always falls before the bound.
18
+ const QUERY_LOG_SKEW_MARGIN_MS = 2_000;
19
+ // queryStatus's own default: every query_log entry for the id counts.
20
+ const UNBOUNDED_POLL_AFTER_TIME = '1970-01-01 00:00:00';
4
21
  // A poll request can fail transiently (gateway 504/524, network blip) while the
5
22
  // server-side async query keeps running. Tolerate a bounded number of these so a
6
23
  // momentary timeout doesn't abort a long-running load; only give up after the budget.
@@ -12,19 +29,17 @@ export async function applyAsyncStatement(input) {
12
29
  const { db, journalStore, sql, migrationName, migrationChecksum, statementIndex, operationType, operationKey, beforeRetry, log, pollIntervalMs = POLL_INTERVAL_MS, sleep = defaultSleep, now = Date.now, } = input;
13
30
  const queryId = makeDeterministicQueryId(migrationName, statementIndex);
14
31
  debug('migrate:async', `${migrationName}#${statementIndex} query_id=${queryId} type=${operationType}`);
15
- const initialMigrationState = await journalStore.readMigrationState(migrationName);
16
- if (initialMigrationState !== null &&
17
- !initialMigrationState.migrationCompleted &&
18
- initialMigrationState.checksum !== migrationChecksum) {
19
- throw new Error(`Migration ${migrationName} has in-progress async journal state for checksum ${initialMigrationState.checksum}, but the current file checksum is ${migrationChecksum}. Restore the original migration file or clear the in-progress journal state before retrying.`);
20
- }
32
+ const initialMigrationState = acceptChangedChecksum(await journalStore.readMigrationState(migrationName), migrationName, migrationChecksum);
21
33
  const priorOpState = initialMigrationState?.operations.find((op) => op.operationIndex === statementIndex);
22
34
  // 1. Already completed → skip entirely
23
35
  if (priorOpState?.status === 'completed') {
24
36
  log(` ${operationType}: query_id=${queryId} already completed in prior run — skipping`);
25
37
  return { kind: 'skipped', operation: priorOpState };
26
38
  }
27
- // 2. Currently in flight on the server → attach
39
+ // 2. Currently in flight on the server → attach. The server clock is read
40
+ // before the check, so the start derived from it and the attempt's elapsed
41
+ // time never falls after the start that query_log records for the attempt.
42
+ const serverNowMs = await readServerNowMs(db);
28
43
  const inFlight = await db.queryStatus(queryId);
29
44
  if (inFlight.status === 'running') {
30
45
  log(` ${operationType}: query_id=${queryId} already running on server — attaching to in-flight query`);
@@ -38,7 +53,7 @@ export async function applyAsyncStatement(input) {
38
53
  operationType,
39
54
  operationKey,
40
55
  queryId,
41
- pollAfterTime: '1970-01-01 00:00:00',
56
+ pollAfterTime: attachLowerBound(serverNowMs, inFlight.elapsedMs),
42
57
  log,
43
58
  pollIntervalMs,
44
59
  sleep,
@@ -66,7 +81,6 @@ export async function applyAsyncStatement(input) {
66
81
  else {
67
82
  log(` ${operationType}: submitting async (query_id=${queryId})`);
68
83
  }
69
- const submitAfterTime = priorOpState === undefined ? undefined : isoWithoutZone(new Date(now() - 60_000));
70
84
  const startedAt = isoWithoutZone(new Date(now()));
71
85
  // Persist the "started" intent BEFORE submitting, so a crash between here
72
86
  // and the next event still leaves chkit able to detect "this op was tried."
@@ -83,6 +97,7 @@ export async function applyAsyncStatement(input) {
83
97
  // Re-read so we have the row's actual stored applied_at (matters for
84
98
  // subsequent ReplacingMergeTree writes during polling).
85
99
  const stateAfterStart = await journalStore.readMigrationState(migrationName);
100
+ const pollAfterTime = await readSubmissionLowerBound(db);
86
101
  const submitPromise = db.submit(sql, queryId);
87
102
  return await pollUntilTerminal({
88
103
  db,
@@ -94,7 +109,7 @@ export async function applyAsyncStatement(input) {
94
109
  operationType,
95
110
  operationKey,
96
111
  queryId,
97
- pollAfterTime: submitAfterTime,
112
+ pollAfterTime,
98
113
  log,
99
114
  pollIntervalMs,
100
115
  sleep,
@@ -120,7 +135,7 @@ async function pollUntilTerminal(input) {
120
135
  await sleep(pollIntervalMs);
121
136
  let status;
122
137
  try {
123
- status = await db.queryStatus(queryId, pollAfterTime === undefined ? undefined : { afterTime: pollAfterTime });
138
+ status = await db.queryStatus(queryId, { afterTime: pollAfterTime });
124
139
  transientPollErrors = 0;
125
140
  }
126
141
  catch (pollError) {
@@ -174,9 +189,21 @@ async function pollUntilTerminal(input) {
174
189
  }
175
190
  // status === 'unknown'
176
191
  // If submit has already rejected, the query never made it server-side
177
- // (e.g. SQL parse error) — surface that error. Otherwise it's a
178
- // transient gap (just-submitted or just-finished); loop.
192
+ // (e.g. SQL parse error) — record the attempt as failed and surface that
193
+ // error. Otherwise it's a transient gap (just-submitted or just-finished); loop.
179
194
  if (submitError) {
195
+ const failedOp = {
196
+ operationIndex: statementIndex,
197
+ operationKey,
198
+ operationType,
199
+ queryId,
200
+ status: 'failed',
201
+ startedAt,
202
+ finishedAt: isoWithoutZone(new Date(now())),
203
+ lastError: describeError(submitError),
204
+ };
205
+ const baseState = migrationState ?? freshMigrationState(migrationName, migrationChecksum);
206
+ await journalStore.writeMigrationState(upsertOperation(baseState, failedOp, now));
180
207
  throw submitError;
181
208
  }
182
209
  log(` ${operationType}: status unknown — still polling (elapsed ${elapsedSec}s)`);
@@ -188,6 +215,44 @@ async function pollUntilTerminal(input) {
188
215
  }
189
216
  }
190
217
  }
218
+ // applyMigration re-keys an edited in-progress state before any statement
219
+ // runs; this is defense in depth. A state whose checksum still differs is
220
+ // accepted only when no statement is recorded as completed or started (#233),
221
+ // and the writes that follow carry the new checksum.
222
+ function acceptChangedChecksum(state, migrationName, migrationChecksum) {
223
+ if (state === null || state.migrationCompleted || state.checksum === migrationChecksum)
224
+ return state;
225
+ if (hasStatementProgress(state)) {
226
+ throw inProgressChecksumMismatchError({
227
+ migration: migrationName,
228
+ journalChecksum: state.checksum,
229
+ fileChecksum: migrationChecksum,
230
+ async: true,
231
+ });
232
+ }
233
+ return { ...state, checksum: migrationChecksum };
234
+ }
235
+ // Read just before a submission, as an ISO UTC string for queryStatus.
236
+ async function readSubmissionLowerBound(db) {
237
+ return queryLogLowerBound(await readServerNowMs(db), 0);
238
+ }
239
+ // The attached attempt had run for elapsedMs when the in-flight check, which
240
+ // followed the serverNowMs reading, saw it. Without an elapsed time its start
241
+ // is unknown, and only the unbounded lookup still finds its entry.
242
+ function attachLowerBound(serverNowMs, elapsedMs) {
243
+ return elapsedMs === undefined ? UNBOUNDED_POLL_AFTER_TIME : queryLogLowerBound(serverNowMs, elapsedMs);
244
+ }
245
+ function queryLogLowerBound(serverNowMs, startedMsAgo) {
246
+ return new Date(serverNowMs - startedMsAgo - QUERY_LOG_SKEW_MARGIN_MS).toISOString();
247
+ }
248
+ async function readServerNowMs(db) {
249
+ const [row] = await db.query('SELECT toUnixTimestamp64Milli(now64(3)) AS now_ms');
250
+ const serverNowMs = Number(row?.now_ms);
251
+ if (!Number.isFinite(serverNowMs)) {
252
+ throw new Error('Could not read the ClickHouse server time for an async statement.');
253
+ }
254
+ return serverNowMs;
255
+ }
191
256
  export function upsertOperation(state, op, now) {
192
257
  const others = state.operations.filter((existing) => existing.operationIndex !== op.operationIndex);
193
258
  const operations = [...others, op].sort((a, b) => a.operationIndex - b.operationIndex);
@@ -252,7 +317,4 @@ export function isoWithoutZone(date) {
252
317
  function firstLine(value) {
253
318
  return value.split('\n')[0] ?? value;
254
319
  }
255
- function defaultSleep(ms) {
256
- return new Promise((resolve) => setTimeout(resolve, ms));
257
- }
258
320
  //# sourceMappingURL=async-apply.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"async-apply.js","sourceRoot":"","sources":["../../../src/commands/migrate/async-apply.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"async-apply.js","sourceRoot":"","sources":["../../../src/commands/migrate/async-apply.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,46 @@
1
- import { type ChxPluginCommand } from '../../plugins.js';
1
+ import type { ClickHouseExecutor } from '@chkit/clickhouse';
2
+ import type { ResolvedChxConfig } from '@chkit/core';
3
+ import { type ChxPluginCommand, type ParsedFlags, type PluginRuntime, type TableScope } from '../../plugins.js';
4
+ import { createJournalStore } from '../../runtime/journal-store.js';
5
+ import { type MigrationJournal } from '../../runtime/migration-store.js';
6
+ import { type MigrateMode } from './output.js';
2
7
  export declare const migrateCommand: ChxPluginCommand;
8
+ type JournalStore = ReturnType<typeof createJournalStore>;
9
+ /** Shared state resolved once by prepareMigration and threaded through the phases. */
10
+ interface MigrateContext {
11
+ jsonMode: boolean;
12
+ executeRequested: boolean;
13
+ allowDestructive: boolean;
14
+ mode: MigrateMode;
15
+ migrationsDir: string;
16
+ metaDir: string;
17
+ db: ClickHouseExecutor;
18
+ journalStore: JournalStore;
19
+ config: ResolvedChxConfig;
20
+ flags: ParsedFlags;
21
+ pluginRuntime: PluginRuntime;
22
+ tableScope: TableScope;
23
+ journal: MigrationJournal;
24
+ files: string[];
25
+ appliedNames: ReadonlySet<string>;
26
+ pendingAll: string[];
27
+ retryTarget: string | undefined;
28
+ abandonTarget: string | undefined;
29
+ }
30
+ /** The parts of the migrate context that --abandon reads. */
31
+ type AbandonContext = Pick<MigrateContext, 'jsonMode' | 'executeRequested' | 'journalStore' | 'tableScope' | 'appliedNames' | 'files' | 'metaDir'>;
32
+ /** How --abandon asks before it changes the journal without --apply. */
33
+ interface AbandonPrompt {
34
+ /** Whether someone can answer a prompt: a TTY outside CI. */
35
+ isInteractive: () => boolean;
36
+ confirm: (migration: string) => Promise<boolean>;
37
+ }
38
+ /**
39
+ * --abandon <migration>: reset the journal state of a failed migration so the
40
+ * next apply runs it from statement 1. Without --apply it only previews, like
41
+ * the rest of migrate, or asks first in an interactive terminal. Runs before
42
+ * every other gate and applies nothing.
43
+ */
44
+ export declare function runAbandon(ctx: AbandonContext, migration: string, prompt?: AbandonPrompt): Promise<number>;
45
+ export {};
3
46
  //# sourceMappingURL=command.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../src/commands/migrate/command.ts"],"names":[],"mappings":"AAKA,OAAO,EAGL,KAAK,gBAAgB,EAKtB,MAAM,kBAAkB,CAAA;AA4CzB,eAAO,MAAM,cAAc,EAAE,gBAK5B,CAAA"}
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../src/commands/migrate/command.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAEpD,OAAO,EAGL,KAAK,gBAAgB,EAErB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,UAAU,EAChB,MAAM,kBAAkB,CAAA;AAIzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,EAIL,KAAK,gBAAgB,EAEtB,MAAM,kCAAkC,CAAA;AAQzC,OAAO,EAgBL,KAAK,WAAW,EACjB,MAAM,aAAa,CAAA;AA8BpB,eAAO,MAAM,cAAc,EAAE,gBAK5B,CAAA;AAED,KAAK,YAAY,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAEzD,sFAAsF;AACtF,UAAU,cAAc;IACtB,QAAQ,EAAE,OAAO,CAAA;IACjB,gBAAgB,EAAE,OAAO,CAAA;IACzB,gBAAgB,EAAE,OAAO,CAAA;IACzB,IAAI,EAAE,WAAW,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,EAAE,EAAE,kBAAkB,CAAA;IACtB,YAAY,EAAE,YAAY,CAAA;IAC1B,MAAM,EAAE,iBAAiB,CAAA;IACzB,KAAK,EAAE,WAAW,CAAA;IAClB,aAAa,EAAE,aAAa,CAAA;IAC5B,UAAU,EAAE,UAAU,CAAA;IACtB,OAAO,EAAE,gBAAgB,CAAA;IACzB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACjC,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B,aAAa,EAAE,MAAM,GAAG,SAAS,CAAA;CAClC;AAeD,6DAA6D;AAC7D,KAAK,cAAc,GAAG,IAAI,CACxB,cAAc,EACd,UAAU,GAAG,kBAAkB,GAAG,cAAc,GAAG,YAAY,GAAG,cAAc,GAAG,OAAO,GAAG,SAAS,CACvG,CAAA;AAED,wEAAwE;AACxE,UAAU,aAAa;IACrB,6DAA6D;IAC7D,aAAa,EAAE,MAAM,OAAO,CAAA;IAC5B,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CACjD;AAuGD;;;;;GAKG;AACH,wBAAsB,UAAU,CAC9B,GAAG,EAAE,cAAc,EACnB,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,aAA+B,GACtC,OAAO,CAAC,MAAM,CAAC,CAmCjB"}