/** * 中央 schema(`tidb-pool.ts` 的 `SCHEMA_STATEMENTS` ⇄ `pg-pool.ts` 的 `PG_SCHEMA_STATEMENTS` 这一对孪生) * 所拥有的那批表的索引**声明** —— S-287,两方言**共用同一份**。 * * ## 为什么自成一个模块 * 两只池各自 `import` 了自己的驱动(`mysql2/promise` / `pg`,都是**值**导入)。若把这份声明放进其中一只, * 另一只就得把对方的驱动一起拖进进程 —— 单后端部署因此多驮一个它永远用不到的驱动。声明是纯数据、零驱动 * 依赖,所以它住在两只池**之外**,谁都可以白拿。 * * ## 谁应用它 * · **PG**:`pg-pool.ts` 的 `ensurePgSchema`,在所有 `CREATE TABLE` 之后(PG 方言没有内联 `KEY`); * · **MySQL/TiDB**:`tidb-pool.ts` 的 `ensureSchema`,同样在所有 `CREATE TABLE` 之后 —— 新建库上这批索引 * 早已随 `CREATE TABLE` 的内联 `KEY` 到货,`ensureIndex` 的探测因此**一条 DDL 都不发**;只有存量库 * (建表那天还没有这条索引)才真的发一次 `ALTER TABLE … ADD INDEX`。 * * 🔴 每条声明的**列序**必须与 `tidb-pool.ts` 那张表的内联 `KEY` 逐字一致(等值前缀在前、排序列在后); * 两处列序分叉 = 两方言的访问路径分叉,而探测只看索引名、看不出列序不同。 */ import type { IndexSpec } from "./ensure-index.js"; export declare const CENTRAL_SCHEMA_INDEXES: readonly IndexSpec[]; //# sourceMappingURL=schema-indexes.d.ts.map