From 1cd298ebaf522f7e3db8a4f3cf90f96a887ca692 Mon Sep 17 00:00:00 2001 From: whyour Date: Wed, 2 Sep 2026 04:33:08 +0800 Subject: [PATCH] fix(ql3): classify retained legacy target tables --- .../reconciliation/planning/inventory.ts | 2 ++ .../test/reconciliationInventory.test.cjs | 25 +++++++++++++++---- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/packages/ql3-local-owner-cli/src/deployment/reconciliation/planning/inventory.ts b/packages/ql3-local-owner-cli/src/deployment/reconciliation/planning/inventory.ts index 3cff7251..93feb97c 100644 --- a/packages/ql3-local-owner-cli/src/deployment/reconciliation/planning/inventory.ts +++ b/packages/ql3-local-owner-cli/src/deployment/reconciliation/planning/inventory.ts @@ -93,6 +93,8 @@ function legacyDomain(name: string): LocalReconciliationPlanDomain { } function targetDomain(name: string): LocalReconciliationPlanDomain { + const retainedLegacyDomain = legacyDomain(name); + if (retainedLegacyDomain !== 'unknown') return retainedLegacyDomain; if (name === 'QingLong3SchemaCapabilities' || name.includes('Migration')) { return 'schema_lineage'; } diff --git a/packages/ql3-local-owner-cli/test/reconciliationInventory.test.cjs b/packages/ql3-local-owner-cli/test/reconciliationInventory.test.cjs index 278a2e50..9596e995 100644 --- a/packages/ql3-local-owner-cli/test/reconciliationInventory.test.cjs +++ b/packages/ql3-local-owner-cli/test/reconciliationInventory.test.cjs @@ -5,13 +5,28 @@ const { classifyLocalReconciliationFact, } = require('../dist/deployment/reconciliation/planning/inventory.js'); -test('classifies Legacy runtime instances as preserved run history', () => { - assert.equal( - classifyLocalReconciliationFact('legacy', 'RunningInstances'), - 'run_history', - ); +test('classifies known Legacy tables in source and adopted target inventories', () => { + const knownLegacyTables = new Map([ + ['Crontabs', 'automation'], + ['CrontabViews', 'automation'], + ['Subscriptions', 'automation'], + ['Envs', 'secret_and_config'], + ['Auths', 'identity_policy_audit'], + ['Dependences', 'plugin_package'], + ['Apps', 'plugin_package'], + ['CrontabStats', 'run_history'], + ['RunningInstances', 'run_history'], + ]); + for (const [tableName, domain] of knownLegacyTables) { + assert.equal(classifyLocalReconciliationFact('legacy', tableName), domain); + assert.equal(classifyLocalReconciliationFact('target', tableName), domain); + } assert.equal( classifyLocalReconciliationFact('legacy', 'PluginOwnedState'), 'unknown', ); + assert.equal( + classifyLocalReconciliationFact('target', 'PluginOwnedState'), + 'unknown', + ); });