@vibeorm/migrate 2.4.0 → 2.5.0
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.
- package/dist/artifact-probe.d.ts +41 -0
- package/dist/artifact-probe.d.ts.map +1 -0
- package/dist/down.d.ts +21 -3
- package/dist/down.d.ts.map +1 -1
- package/dist/extensions.d.ts +52 -0
- package/dist/extensions.d.ts.map +1 -1
- package/dist/fs.js +46 -3
- package/dist/fs.js.map +4 -4
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +195 -82
- package/dist/index.js.map +10 -9
- package/dist/planner.d.ts +28 -0
- package/dist/planner.d.ts.map +1 -1
- package/dist/push.d.ts +11 -0
- package/dist/push.d.ts.map +1 -1
- package/dist/replay-plan.d.ts.map +1 -1
- package/dist/runner.d.ts.map +1 -1
- package/package.json +2 -2
package/dist/fs.js.map
CHANGED
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"import { VibeError, sqlObjectKey } from \"@vibeorm/schema\";\nimport { canonicalMigrationJson } from \"./desired-state.ts\";\nimport type { DesiredState } from \"./desired-state.ts\";\nimport { migrationChecksum } from \"./migration-checksum.ts\";\nimport type { ModuleJournalRecord } from \"./module-journal.ts\";\nimport type { ModuleMigrationOrigin } from \"./module-origin.ts\";\nimport { assertModuleOwnership } from \"./module-ownership.ts\";\nimport type { MigrationFile } from \"./types.ts\";\n\nfunction refusal(params: { reason: string; moduleId: string; revision?: string }): VibeError {\n return new VibeError({ code: \"VIBE_MIGRATION\", message: `Module ${params.moduleId} history, ownership or predecessor state is inconsistent; restore or complete the reviewed upgrade first`, meta: params });\n}\n\n/** Validate ordered chains, never selecting an earlier completed entry past a later incomplete one. */\nexport function moduleHistoryHeads(params: { records: ReadonlyMap<string, ModuleJournalRecord> }): Map<string, ModuleJournalRecord> {\n const heads = new Map<string, ModuleJournalRecord>();\n const revisions = new Map<string, Set<string>>();\n for (const record of params.records.values()) {\n const origin = record.entry?.migration.moduleOrigin;\n if (origin === undefined) continue;\n const previous = heads.get(origin.moduleId);\n const seen = revisions.get(origin.moduleId) ?? new Set<string>();\n if (seen.has(origin.revision) || origin.previousRevision !== (previous?.entry?.migration.moduleOrigin?.revision ?? null)) throw refusal({ reason: \"module-chain-invalid\", moduleId: origin.moduleId, revision: origin.revision });\n if (previous !== undefined && (!previous.entry!.complete || previous.row.error !== undefined || previous.row.statementIndex !== previous.entry!.migration.sql.length)) throw refusal({ reason: \"module-chain-incomplete\", moduleId: origin.moduleId });\n if (previous !== undefined && canonicalMigrationJson({ value: previous.entry!.migration.moduleOrigin!.source.desiredState!.to }) !== canonicalMigrationJson({ value: origin.source.desiredState!.from })) throw refusal({ reason: \"module-predecessor-state\", moduleId: origin.moduleId });\n seen.add(origin.revision);\n revisions.set(origin.moduleId, seen);\n heads.set(origin.moduleId, record);\n }\n return heads;\n}\n\n/** Installed module expectations for an ordinary application file, including subset runners. */\nexport function applicationModuleOrigins(params: { migration: MigrationFile; records: ReadonlyMap<string, ModuleJournalRecord> }): readonly ModuleMigrationOrigin[] {\n if (params.migration.moduleOrigin !== undefined || params.migration.desiredState !== undefined) return [];\n const origins: ModuleMigrationOrigin[] = [];\n for (const [moduleId, head] of moduleHistoryHeads(params)) {\n if (!head.entry!.complete || head.row.error !== undefined || head.row.statementIndex !== head.entry!.migration.sql.length) throw refusal({ reason: \"module-chain-incomplete\", moduleId });\n origins.push(head.entry!.migration.moduleOrigin!);\n }\n return origins;\n}\n\nfunction preserves(params: { actual: DesiredState; expected: DesiredState; moduleId: string }): void {\n const tables = new Set(params.expected.schema.models.map((model) => model.dbName ?? model.name));\n const enums = new Set(params.expected.schema.enums.map((entry) => entry.dbName ?? entry.name));\n const models = params.actual.schema.models.filter((model) => tables.has(model.dbName ?? model.name));\n const declaredEnums = params.actual.schema.enums.filter((entry) => enums.has(entry.dbName ?? entry.name));\n if (canonicalMigrationJson({ value: models }) !== canonicalMigrationJson({ value: params.expected.schema.models }) || canonicalMigrationJson({ value: declaredEnums }) !== canonicalMigrationJson({ value: params.expected.schema.enums })) throw refusal({ reason: \"module-application-mutation\", moduleId: params.moduleId });\n const objectKeys = new Set((params.expected.schema.migrationObjects ?? []).map((object) => sqlObjectKey({ identity: object.identity })));\n const definitionKeys = new Set(params.expected.definitions.map((definition) => sqlObjectKey({ identity: definition.identity })));\n if (canonicalMigrationJson({ value: (params.actual.schema.migrationObjects ?? []).filter((object) => objectKeys.has(sqlObjectKey({ identity: object.identity }))) }) !== canonicalMigrationJson({ value: params.expected.schema.migrationObjects ?? [] }) || canonicalMigrationJson({ value: params.actual.definitions.filter((definition) => definitionKeys.has(sqlObjectKey({ identity: definition.identity }))) }) !== canonicalMigrationJson({ value: params.expected.definitions })) throw refusal({ reason: \"module-application-mutation\", moduleId: params.moduleId });\n for (const model of params.actual.schema.models) for (const relation of model.relations) {\n const target = params.actual.schema.models.find((candidate) => candidate.name === relation.targetModel);\n if (target !== undefined && tables.has(model.dbName ?? model.name) !== tables.has(target.dbName ?? target.name)) throw refusal({ reason: \"module-external-dependency\", moduleId: params.moduleId });\n }\n}\n\n/** Lock-held admission for the full pending sequence, including conflicts with prior module ownership. */\nexport function assertModuleUpgradeHistory(params: { migrations: readonly MigrationFile[]; records: ReadonlyMap<string, ModuleJournalRecord> }): void {\n const heads = moduleHistoryHeads(params);\n const owners = new Map<string, string>();\n const register = (migration: MigrationFile): void => {\n const origin = migration.moduleOrigin!;\n for (const identity of origin.owned) {\n const key = sqlObjectKey({ identity });\n if (owners.has(key) && owners.get(key) !== origin.moduleId) throw refusal({ reason: \"module-object-collision\", moduleId: origin.moduleId });\n owners.set(key, origin.moduleId);\n }\n };\n for (const record of params.records.values()) if (record.entry !== undefined) register(record.entry.migration);\n for (const migration of params.migrations) {\n const stored = params.records.get(migration.name);\n const origin = migration.moduleOrigin;\n if (stored !== undefined) {\n if (origin !== undefined && (stored.entry === undefined || stored.row.checksum !== migrationChecksum(migration))) throw refusal({ reason: \"module-history-invalid\", moduleId: origin.moduleId });\n continue;\n }\n if (origin === undefined) {\n for (const [moduleId, head] of heads) {\n // Plain SQL is protected by live module checks inside the execution boundary.\n if (migration.desiredState === undefined) continue;\n const expected = head.entry!.migration.moduleOrigin!.source.desiredState!.to;\n for (const actual of [migration.desiredState.from, migration.desiredState.to, migration.desiredState.down ?? migration.desiredState.from]) preserves({ actual, expected, moduleId });\n }\n continue;\n }\n assertModuleOwnership({ origin, desiredState: migration.desiredState });\n const previous = heads.get(origin.moduleId);\n if (origin.previousRevision !== (previous?.entry?.migration.moduleOrigin?.revision ?? null)) throw refusal({ reason: \"module-chain-invalid\", moduleId: origin.moduleId, revision: origin.revision });\n if (previous === undefined) {\n const before = origin.source.desiredState!.from;\n if (before.schema.models.length > 0 || before.schema.enums.length > 0 || (before.schema.migrationObjects?.length ?? 0) > 0 || before.definitions.length > 0) throw refusal({ reason: \"module-adoption-required\", moduleId: origin.moduleId });\n } else {\n if (!previous.entry!.complete || previous.row.error !== undefined || previous.row.statementIndex !== previous.entry!.migration.sql.length) throw refusal({ reason: \"module-chain-incomplete\", moduleId: origin.moduleId });\n if (canonicalMigrationJson({ value: previous.entry!.migration.moduleOrigin!.source.desiredState!.to }) !== canonicalMigrationJson({ value: origin.source.desiredState!.from })) throw refusal({ reason: \"module-predecessor-state\", moduleId: origin.moduleId });\n }\n register(migration);\n heads.set(origin.moduleId, { row: { checksum: migrationChecksum(migration), statementIndex: migration.sql.length }, entry: { version: 1, migration, complete: true } });\n }\n}\n",
|
|
35
35
|
"import { VibeError } from \"@vibeorm/schema\";\nimport type { Dialect } from \"@vibeorm/schema\";\nimport { getSqlDialect, MODULE_JOURNAL_COLUMN, renderModuleJournal } from \"@vibeorm/sql\";\nimport { canonicalMigrationJson, parseMigrationMetadata } from \"./desired-state.ts\";\nimport { migrationChecksum } from \"./migration-checksum.ts\";\nimport { assertModuleOrigin, assertMaterializedModuleMigration } from \"./module-origin.ts\";\nimport { assertModuleOwnership } from \"./module-ownership.ts\";\nimport { readJournalRows } from \"./journal-read.ts\";\nimport type { JournalRow } from \"./journal-read.ts\";\nimport { MIGRATIONS_TABLE_NAME } from \"./journal-table.ts\";\nimport type { MigrationFile, SqlExecutor } from \"./types.ts\";\n\n/** Completion is independent of cursor position: final verification may still fail. */\nexport type ModuleJournalEntry = { readonly version: 1; readonly migration: MigrationFile; readonly complete: boolean };\nexport type ModuleJournalRecord = { readonly row: JournalRow; readonly entry?: ModuleJournalEntry };\n\nfunction invalid(): VibeError {\n return new VibeError({ code: \"VIBE_MIGRATION\", message: \"Module migration history is missing, altered or inconsistent; restore the reviewed history before using this module\", meta: { reason: \"module-history-invalid\" } });\n}\n\n/** Validate both stored source provenance and the local execution checksum. */\nexport function parseModuleJournalEntry(params: { text: string; name: string; checksum: string }): ModuleJournalEntry {\n return parseMigrationMetadata({ text: params.text, failure: invalid, parse: (value) => {\n if (value === null || typeof value !== \"object\" || !(\"version\" in value) || value.version !== 1 || !(\"complete\" in value) || typeof value.complete !== \"boolean\" || !(\"migration\" in value) || value.migration === null || typeof value.migration !== \"object\") throw invalid();\n const migration = value.migration as MigrationFile;\n assertModuleOrigin({ value: migration.moduleOrigin });\n if (migration.name !== params.name || migrationChecksum(migration) !== params.checksum) throw invalid();\n assertMaterializedModuleMigration({ migration });\n assertModuleOwnership({ origin: migration.moduleOrigin!, desiredState: migration.desiredState });\n return { version: 1, complete: value.complete, migration };\n } });\n}\n\n/** Read-only journal access: an absent journal or old journal without the optional column is not upgraded. */\nexport async function readModuleJournal(params: { executor: SqlExecutor; dialect: Dialect }): Promise<ReadonlyMap<string, ModuleJournalRecord>> {\n const query = renderModuleJournal({ dialect: getSqlDialect({ dialect: params.dialect }), table: MIGRATIONS_TABLE_NAME, operation: { kind: \"read\" } });\n const rows = await readJournalRows({ ...params, query });\n return new Map([...(rows ?? [])].map(([name, row]) => {\n const entry = row.moduleEntry === undefined ? undefined : parseModuleJournalEntry({ text: row.moduleEntry, name, checksum: row.checksum });\n if (entry !== undefined && entry.migration.moduleOrigin!.dialect !== params.dialect) throw invalid();\n return [name, { row, ...(entry === undefined ? {} : { entry }) }];\n }));\n}\n\n/** Deployment-only, lock-held schema upgrade on the existing history table. */\nexport async function ensureModuleJournal(params: { executor: SqlExecutor; dialect: Dialect }): Promise<void> {\n const dialect = getSqlDialect({ dialect: params.dialect });\n const columns = await params.executor(renderModuleJournal({ dialect, table: MIGRATIONS_TABLE_NAME, operation: { kind: \"columns\" } }));\n if (columns.some((row) => row.name === MODULE_JOURNAL_COLUMN)) return;\n await params.executor(renderModuleJournal({ dialect, table: MIGRATIONS_TABLE_NAME, operation: { kind: \"addColumn\" } }));\n}\n\n/** First record is complete only on the transactional path, within the same commit as its SQL. */\nexport async function insertModuleJournal(params: { executor: SqlExecutor; dialect: Dialect; migration: MigrationFile; index: number; complete: boolean }): Promise<void> {\n await params.executor(renderModuleJournal({ dialect: getSqlDialect({ dialect: params.dialect }), table: MIGRATIONS_TABLE_NAME, operation: {\n kind: \"insert\", name: params.migration.name, checksum: migrationChecksum(params.migration), index: params.index,\n entry: canonicalMigrationJson({ value: { version: 1, migration: params.migration, complete: params.complete } }),\n } }));\n}\n\n/** Called only after statement progress and final desired-state verification have completed. */\nexport async function completeModuleJournal(params: { executor: SqlExecutor; dialect: Dialect; migration: MigrationFile }): Promise<void> {\n await params.executor(renderModuleJournal({ dialect: getSqlDialect({ dialect: params.dialect }), table: MIGRATIONS_TABLE_NAME, operation: {\n kind: \"complete\", name: params.migration.name, entry: canonicalMigrationJson({ value: { version: 1, migration: params.migration, complete: true } }),\n } }));\n}\n\n/** Neither repair sentinels nor a completed cursor can manufacture a completed module revision. */\nexport function moduleRecordComplete(params: { migration: MigrationFile; stored: JournalRow }): boolean {\n const { migration, stored } = params;\n if (stored.moduleEntry === undefined || stored.checksum === \"\") throw invalid();\n const entry = parseModuleJournalEntry({ text: stored.moduleEntry, name: migration.name, checksum: stored.checksum });\n if (migrationChecksum(migration) !== stored.checksum) throw invalid();\n return entry.complete && stored.error === undefined && stored.statementIndex === migration.sql.length;\n}\n",
|
|
36
36
|
"import { VibeError } from \"@vibeorm/schema\";\nimport type { Dialect } from \"@vibeorm/schema\";\nimport { inspectSqlObject } from \"./inspect-objects.ts\";\nimport { MIGRATIONS_TABLE_NAME } from \"./journal-table.ts\";\nimport type { SqlExecutor } from \"./types.ts\";\n\n/** Validated journal data, shared by the runner and read-only history API. */\nexport type JournalRow = { readonly checksum: string; readonly statementIndex: number; readonly error?: string; readonly moduleEntry?: string };\n\nconst MISSING_TABLE_IDENTIFIERS: ReadonlySet<string> = new Set([\"42P01\", \"42S02\", \"ER_NO_SUCH_TABLE\"]);\n\nfunction isMissingTable(params: { cause: unknown }): boolean {\n let current = params.cause;\n for (let depth = 0; depth < 6 && current !== null && typeof current === \"object\"; depth++) {\n const record = current as Record<string, unknown>;\n for (const key of [\"code\", \"errno\", \"sqlState\"]) {\n const value = record[key];\n if (typeof value === \"string\" && MISSING_TABLE_IDENTIFIERS.has(value)) return true;\n }\n current = record.cause;\n }\n return false;\n}\n\n/**\n * Execute a journal read without creating it. Undefined means proven absence,\n * never a denied read. SQLite has no missing-table error code, so an unsuccessful\n * read is followed by catalog inspection rather than matching error messages.\n * This module never imports runner/history, keeping their shared reader acyclic.\n */\nexport async function readJournalRows(params: {\n executor: SqlExecutor;\n dialect: Dialect;\n query: { readonly text: string; readonly values?: readonly unknown[] };\n}): Promise<Map<string, JournalRow> | undefined> {\n const rows = await params.executor({ text: params.query.text, values: [...(params.query.values ?? [])] }).catch(async (cause: unknown) => {\n if (params.dialect !== \"sqlite\" && isMissingTable({ cause })) return undefined;\n if (params.dialect === \"sqlite\") {\n const presence = await inspectSqlObject({ executor: params.executor, dialect: \"sqlite\", identity: { kind: \"table\", name: { namespace: \"main\", name: MIGRATIONS_TABLE_NAME } } });\n if (presence.state === \"missing\") return undefined;\n }\n throw new VibeError({ code: \"VIBE_MIGRATION\", message: \"Cannot inspect migration history; check SELECT privileges\", meta: { reason: \"history-unavailable\" }, cause });\n });\n if (rows === undefined) return undefined;\n const result = new Map<string, JournalRow>();\n for (const row of rows) {\n const index = row.statement_index;\n if (typeof row.name !== \"string\" || typeof row.checksum !== \"string\"\n || (typeof index !== \"number\" && typeof index !== \"string\") || (typeof index === \"string\" && !/^-?\\d+$/.test(index)) || !Number.isSafeInteger(Number(index))\n || (row.module_origin !== null && row.module_origin !== undefined && typeof row.module_origin !== \"string\")\n || (row.error !== null && row.error !== undefined && typeof row.error !== \"string\") || result.has(row.name)) {\n throw new VibeError({ code: \"VIBE_MIGRATION\", message: \"Malformed migration journal row\", meta: { reason: \"history-unavailable\" } });\n }\n result.set(row.name, { checksum: row.checksum, statementIndex: Number(index), ...(typeof row.error === \"string\" ? { error: row.error } : {}), ...(typeof row.module_origin === \"string\" ? { moduleEntry: row.module_origin } : {}) });\n }\n return result;\n}\n",
|
|
37
|
-
"/**\n * Migration runner: generate named migrations from IR diffs, apply them with\n * bookkeeping in `_vibe_migrations`, report status, and repair records.\n *\n * Concurrency: `applyMigrations` and `rollbackMigration` take an advisory lock\n * for the whole run — `pg_advisory_lock(1447645253)` on postgres (\"VIBE\" in\n * ASCII, blocking, released in a finally), `GET_LOCK('vibeorm_migrate', 60)`\n * on mysql (throws VIBE_MIGRATION on timeout). SQLite serializes individual\n * transactions only; callers must exclude concurrent whole-run operations.\n * Locks are session-scoped — the\n * SqlExecutor contract (types.ts) requires one session for the whole\n * operation.\n *\n * Lock ORDER matters: the lock is taken BEFORE `ensureMigrationsTable`, never\n * after. Two concurrent first-time runs against a fresh postgres database\n * would otherwise both issue `CREATE TABLE IF NOT EXISTS _vibe_migrations`,\n * which is a catalog race on postgres (a duplicate-key error on\n * `pg_type_typname_nsp_index`, not a no-op). Repair uses the same lock.\n * Status deliberately stays nonblocking and never creates the journal.\n *\n * Execution strategy per dialect (`DIALECT_CAPABILITIES[dialect]`) AND per\n * script:\n *\n * - transactionalDdl (postgres, sqlite): each migration runs inside\n * BEGIN/COMMIT with its bookkeeping INSERT — atomic.\n * - EXCEPT sqlite scripts containing a table-rebuild block, which manage their\n * own transactions (execute.ts `usesSelfManagedTransactions`) and therefore\n * cannot be wrapped. Those take the SAME per-statement bookkeeping as mysql\n * (below). They are NOT simply \"re-runnable\": a pure rebuild block is\n * effectively idempotent, but any plain statement in the same script\n * auto-commits on its own, so without a recorded statement_index a crash\n * wedged the migration forever (every later run replayed statements that had\n * already run). Resuming into a rebuild block rewinds to that block's\n * `PRAGMA foreign_keys=OFF` (execute.ts `selfManagedResumeStart`): the block\n * is transactional, so nothing of it survived, and the pragma is\n * session-scoped and gone after a crash.\n * - mysql (transactionalDdl: false — DDL auto-commits): the runner records\n * PER-STATEMENT progress instead. The row is inserted up front\n * (statement_index 0), advanced after every statement, and on failure the\n * error lands in the `error` column. Re-running RESUMES from the recorded\n * statement_index — and REFUSES if the migration's checksum changed since\n * the partial application. A row is \"complete\" when its statement_index\n * reaches the statement count (or its checksum is empty — resolveMigration\n * records, which store statement_index 2147483647).\n *\n * `usesStatementBookkeeping` is the ONE predicate deciding which of the two\n * regimes a (dialect, script) pair is in; apply, status and rollback all read\n * it, so they can never disagree about whether a record is complete.\n *\n * Checksums (sha256 over the joined SQL) pin a migration's content:\n * re-applying a renamed-or-edited migration is a VIBE_MIGRATION error, never\n * a silent divergence.\n */\n\nimport { migrationChecksum } from \"./migration-checksum.ts\";\nimport { assertDatabaseNotShadow } from \"./shadow-guard.ts\";\nimport { assertModuleOwnership, assertLiveModuleOwnership, assertApplicationModuleState, moduleNamespace } from \"./module-ownership.ts\";\nimport { assertModuleUpgradeHistory, applicationModuleOrigins } from \"./module-history.ts\";\nimport type { ModuleMigrationOrigin } from \"./module-origin.ts\";\nimport { completeModuleJournal, ensureModuleJournal, insertModuleJournal, moduleRecordComplete, readModuleJournal } from \"./module-journal.ts\";\nimport { VibeError } from \"@vibeorm/schema\";\nimport type { Dialect, SchemaIR, SqlObjectIdentity, VibeExtension } from \"@vibeorm/schema\";\nimport { assertMaterializedModuleMigration } from \"./module-origin.ts\";\nimport { readJournalRows } from \"./journal-read.ts\";\nimport type { JournalRow } from \"./journal-read.ts\";\nimport { MIGRATIONS_TABLE_NAME } from \"./journal-table.ts\";\nimport {\n DIALECT_CAPABILITIES,\n getSqlDialect,\n renderMigrationSessionRead,\n renderMigrationSessionRestore,\n renderMigrationSessionSet,\n} from \"@vibeorm/sql\";\nimport { assertValidExecution, isDefaultExecution, operationFor } from \"./execution.ts\";\nimport type { MigrationExecution } from \"./execution.ts\";\nimport { establishOperationState } from \"./recovery.ts\";\nimport type { RenameIntent } from \"./renames.ts\";\nimport { diffSchemas } from \"./differ.ts\";\nimport { renderSteps } from \"./ddl/render.ts\";\nimport { assertSecurityAcknowledgement, securityChangesOf, withRlsSteps } from \"./ddl/rls.ts\";\nimport { introspectPostgres } from \"./introspect/postgres.ts\";\nimport {\n artifactCreateSql,\n collectExtensionArtifacts,\n planMissingArtifacts,\n stripExtensionArtifacts,\n} from \"./extensions.ts\";\nimport {\n assertSupportedSelfManagedScript,\n assertSelfManagedResumeSafe,\n isSelfManagedCommit,\n canCheckpointAtomically,\n cleanupSelfManagedFailure,\n executeStatement,\n selfManagedResumeStart,\n usesSelfManagedTransactions,\n} from \"./execute.ts\";\nimport type {\n AppliedResult,\n MigrationFile,\n MigrationHistoryMode,\n MigrationReplayOptions,\n MigrationStatus,\n RecordedMigration,\n RollbackResult,\n SqlExecutor,\n} from \"./types.ts\";\n\n/** Recompute authorization from the trusted declarations; omitted preview arrays cannot bypass it. */\nfunction migrationRlsSecurityChanges(params: { migration: MigrationFile; down: boolean }): string[] {\n const source = params.migration.rls;\n if (source === undefined) return [];\n return securityChangesOf({ steps: withRlsSteps({ from: params.down ? source.to : source.from, to: params.down ? source.from : source.to, steps: [] }) });\n}\n\n/** Classify operation tokens, never words inside identifiers, literals or comments. */\nfunction containsNativeRlsSql(params: { sql: string; dialect: Dialect }): boolean {\n const { sql, dialect } = params;\n const tokens: string[] = [];\n let i = 0;\n while (i < sql.length) {\n const ch = sql[i]!;\n if (/\\s/.test(ch)) { i++; continue; }\n if (sql.startsWith(\"--\", i) || (dialect === \"mysql\" && ch === \"#\")) {\n const end = sql.indexOf(\"\\n\", i);\n i = end === -1 ? sql.length : end + 1;\n continue;\n }\n if (sql.startsWith(\"/*\", i)) {\n let depth = 1;\n i += 2;\n while (i < sql.length && depth > 0) {\n if (sql.startsWith(\"/*\", i)) { depth++; i += 2; }\n else if (sql.startsWith(\"*/\", i)) { depth--; i += 2; }\n else i++;\n }\n continue;\n }\n if (ch === \"'\" || ch === '\"' || ch === \"`\" || (dialect === \"sqlite\" && ch === \"[\")) {\n const endQuote = ch === \"[\" ? \"]\" : ch;\n const backslash = dialect === \"mysql\" || (ch === \"'\" && /(?:^|[^\\w$])[eE]$/.test(sql.slice(0, i)));\n i++;\n while (i < sql.length) {\n if (backslash && sql[i] === \"\\\\\") { i += 2; continue; }\n if (sql[i] === endQuote) {\n if (sql[i + 1] === endQuote) { i += 2; continue; }\n i++;\n break;\n }\n i++;\n }\n tokens.push(\"@\"); // Keep a boundary: CREATE \"ignored\" POLICY is not CREATE POLICY.\n continue;\n }\n if (ch === \"$\") {\n const tag = /^(?:\\$\\$|\\$[A-Za-z_][A-Za-z_0-9]*\\$)/.exec(sql.slice(i))?.[0];\n if (tag !== undefined) {\n const end = sql.indexOf(tag, i + tag.length);\n i = end === -1 ? sql.length : end + tag.length;\n tokens.push(\"@\");\n continue;\n }\n }\n const word = /^[A-Za-z_][A-Za-z_0-9$]*/.exec(sql.slice(i))?.[0];\n tokens.push(word === undefined ? ch : word.toUpperCase());\n i += word?.length ?? 1;\n }\n // A MigrationFile may carry multiple SQL statements in one array entry.\n return tokens.join(\" \").split(/\\s*;\\s*/).some((statement) => {\n const operation = statement.trim();\n return /^(?:CREATE|ALTER|DROP) POLICY\\b/.test(operation)\n || /^COMMENT ON POLICY\\b/.test(operation)\n || (/^ALTER TABLE\\b/.test(operation) && /\\b(?:ENABLE|DISABLE|FORCE) ROW LEVEL SECURITY\\b/.test(operation));\n });\n}\n\n/** SQL-only native-policy files lack the trusted pre/post declarations required for drift checks. */\nfunction assertNativeMigrationMetadata(params: { migration: MigrationFile; sql: readonly string[]; dialect: Dialect }): void {\n const native = params.migration.rls !== undefined || params.sql.some((sql) => containsNativeRlsSql({ sql, dialect: params.dialect }));\n if (!native) return;\n if (!DIALECT_CAPABILITIES[params.dialect].nativeRowLevelSecurity) {\n throw new VibeError({ code: \"VIBE_UNSUPPORTED_CAPABILITY\", message: `Native RLS migrations are unsupported on ${params.dialect}`, meta: { feature: \"nativeRowLevelSecurity\", dialect: params.dialect } });\n }\n if (params.migration.rls === undefined) {\n throw new VibeError({ code: \"VIBE_MIGRATION\", message: \"Native RLS migration files require trusted rls.from/rls.to schema metadata. SQL alone cannot prove policy ownership or drift; regenerate with preserved security metadata.\", meta: { reason: \"rls-migration-metadata-required\", migration: params.migration.name } });\n }\n}\n\n// ─── Bookkeeping table ────────────────────────────────────────────\n\nexport { MIGRATIONS_TABLE_NAME } from \"./journal-table.ts\";\n\n/** Advisory-lock key for postgres — \"VIBE\" as a big-endian ASCII int32. */\nconst PG_ADVISORY_LOCK_KEY = 1447645253;\nconst MYSQL_LOCK_NAME = \"vibeorm_migrate\";\nconst MYSQL_LOCK_TIMEOUT_SECONDS = 60;\n\n/** statement_index recorded by resolveMigration — \"complete, content unseen\". */\nconst RESOLVED_STATEMENT_INDEX = 2147483647;\n\nconst CREATE_TABLE_SQL: Readonly<Record<Dialect, string>> = {\n postgres: `CREATE TABLE IF NOT EXISTS \"${MIGRATIONS_TABLE_NAME}\" (\n \"id\" integer GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,\n \"name\" text NOT NULL UNIQUE,\n \"checksum\" text NOT NULL,\n \"applied_at\" timestamptz(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,\n \"statement_index\" integer NOT NULL DEFAULT 0,\n \"error\" text\n);`,\n sqlite: `CREATE TABLE IF NOT EXISTS \"${MIGRATIONS_TABLE_NAME}\" (\n \"id\" INTEGER PRIMARY KEY AUTOINCREMENT,\n \"name\" TEXT NOT NULL UNIQUE,\n \"checksum\" TEXT NOT NULL,\n \"applied_at\" TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,\n \"statement_index\" INTEGER NOT NULL DEFAULT 0,\n \"error\" TEXT\n);`,\n mysql: `CREATE TABLE IF NOT EXISTS \\`${MIGRATIONS_TABLE_NAME}\\` (\n \\`id\\` int NOT NULL AUTO_INCREMENT,\n \\`name\\` varchar(191) NOT NULL UNIQUE,\n \\`checksum\\` text NOT NULL,\n \\`applied_at\\` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),\n \\`statement_index\\` int NOT NULL DEFAULT 0,\n \\`error\\` text,\n PRIMARY KEY (\\`id\\`)\n);`,\n};\n\n/** Create the bookkeeping table when missing. */\nexport async function ensureMigrationsTable(params: {\n executor: SqlExecutor;\n dialect?: Dialect;\n}): Promise<void> {\n await params.executor({ text: CREATE_TABLE_SQL[params.dialect ?? \"postgres\"] });\n}\n\n/**\n * sha256 hex over the migration's statements — its identity across runs.\n *\n * A NON-default execution block (execution.ts) folds a canonical description\n * of itself in, so changing how a migration executes after it was applied is\n * caught by the same checksum refusal that catches changing its SQL. A default\n * or absent block contributes NOTHING, which is what keeps every migration\n * written before this feature — and every journal row recording one — valid.\n */\nexport { migrationChecksum } from \"./migration-checksum.ts\";\n\n/** The migration's own checksum, execution block included. */\nfunction checksumOf(params: { migration: MigrationFile }): string {\n const { migration } = params;\n return migrationChecksum(migration);\n}\n\nimport { createDesiredState, assertDesiredState } from \"./desired-state.ts\";\nimport { migrationNamespace, verifyMigrationState, verifyMigrationTransition, verifySqliteTransitionBeforeRestore, assertMigrationState, assertProbeMode } from \"./inspect-objects.ts\";\nimport { assertNamedRemovals, assertRemovalAuthorization, preserveMigrationObjects, sqlitePreservedSchema, orderedMigrationObjects, assertRetainedMigrationObjects } from \"./object-ownership.ts\";\nimport type { MigrationDesiredState } from \"./desired-state.ts\";\n\n/** Re-apply may start at the checksum-bound actual down target after an irreversible rollback. */\nasync function assertForwardStart(params: { executor: SqlExecutor; dialect: Dialect; migration: MigrationFile; probe?: \"none\" | \"rollback\" | \"temporary\" }): Promise<void> {\n const state = params.migration.desiredState;\n if (state === undefined) return;\n const report = await verifyMigrationState({ executor: params.executor, dialect: params.dialect, expected: state.from, ...(params.probe === undefined ? {} : { probe: params.probe }) });\n if (report.inSync) return;\n if (state.down !== undefined) {\n const restored = await verifyMigrationState({ executor: params.executor, dialect: params.dialect, expected: state.down, ...(params.probe === undefined ? {} : { probe: params.probe }) });\n if (restored.inSync) return;\n }\n assertMigrationState({ report });\n}\n\n// ─── Generate ─────────────────────────────────────────────────────\n\n/**\n * Diff two IRs and render a named migration for a dialect (postgres if\n * omitted). `destructive` aggregates the steps' flags so callers can gate\n * confirmation before applying.\n */\nexport function generateMigration(params: {\n from: SchemaIR;\n to: SchemaIR;\n name: string;\n /** Rendering dialect; postgres if omitted. */\n dialect?: Dialect;\n /** Configured extension instances — their artifacts land in the migration. */\n extensions?: readonly VibeExtension[];\n /** Explicit physical renames (renames.ts); never inferred from the diff. */\n renames?: readonly RenameIntent[];\n /** Explicit execution semantics for the generated file. */\n execution?: MigrationExecution;\n /** Independent authored baseline; required by live generation on an existing database. */\n desiredState?: MigrationDesiredState;\n}): MigrationFile {\n const { from, to, name } = params;\n const dialect = params.dialect ?? \"postgres\";\n\n const artifacts = collectExtensionArtifacts({\n schema: to,\n dialect,\n extensions: params.extensions ?? [],\n });\n const allArtifacts = [...artifacts.setup, ...artifacts.objects];\n assertRetainedMigrationObjects({ from: from.migrationObjects ?? [], to: to.migrationObjects ?? [] });\n const strippedFrom = preserveMigrationObjects({ from: stripExtensionArtifacts({ schema: from, artifacts: allArtifacts }), to, objects: [...(from.migrationObjects ?? []), ...(to.migrationObjects ?? [])] });\n\n const steps = diffSchemas({ from: strippedFrom, to, dialect, ...(params.renames === undefined ? {} : { renames: params.renames }) });\n const coreSql = renderSteps({ steps, dialect, from: dialect === \"sqlite\" ? from : strippedFrom, to: dialect === \"sqlite\" ? sqlitePreservedSchema({ from, to, objects: [...(from.migrationObjects ?? []), ...(to.migrationObjects ?? [])] }) : to });\n const missing = planMissingArtifacts({ introspected: from, artifacts: allArtifacts });\n const sql = [\n ...artifactCreateSql({\n artifacts: missing.filter((artifact) => artifact.owns.kind === \"postgresExtension\"),\n }),\n ...coreSql,\n ...artifactCreateSql({\n artifacts: missing.filter((artifact) => artifact.owns.kind !== \"postgresExtension\"),\n }),\n ...orderedMigrationObjects({ objects: to.migrationObjects ?? [] }).flatMap((object) => {\n if (object.dialect !== dialect) throw new VibeError({ code: \"VIBE_UNSUPPORTED_CAPABILITY\", message: `Migration object ${object.id} requires ${object.dialect}` });\n const previous = (params.desiredState?.from.schema.migrationObjects ?? from.migrationObjects)?.find((entry) => entry.id === object.id);\n if (previous === undefined) return [...object.create];\n if (JSON.stringify(previous) !== JSON.stringify(object)) throw new VibeError({ code: \"VIBE_MIGRATION\", message: `Migration-owned object ${object.id} changed; supply a reviewed forward SQL migration`, meta: { reason: \"migration-object-replacement-required\", shadowReusable: true, id: object.id } });\n return [];\n }),\n ];\n return {\n name,\n sql,\n destructive: steps.some((step) => step.destructive),\n ...(securityChangesOf({ steps }).length === 0 ? {} : { securityChanges: securityChangesOf({ steps }) }),\n ...(from.rls === undefined && to.rls === undefined ? {} : { rls: { from, to } }),\n ...(params.execution === undefined ? {} : { execution: params.execution }),\n desiredState: params.desiredState ?? { version: 1, dialect, from: createDesiredState({ schema: from, dialect }), to: createDesiredState({ schema: to, dialect }) },\n };\n}\n\n// ─── Apply ────────────────────────────────────────────────────────\n\n/** Run one operation on a dedicated session under the existing migration lock. */\nexport async function withMigrationLock<T>(params: {\n executor: SqlExecutor;\n dialect: Dialect;\n run: (executor: SqlExecutor) => Promise<T>;\n}): Promise<T> {\n const runLocked = async (executor: SqlExecutor): Promise<T> => {\n await acquireLock({ executor, dialect: params.dialect });\n return Promise.resolve().then(async () => {\n await assertDatabaseNotShadow({ executor, dialect: params.dialect });\n return params.run(executor);\n }).then(\n async (value) => { await releaseLock({ executor, dialect: params.dialect }); return value; },\n (cause: unknown) => releaseLock({ executor, dialect: params.dialect }).then(\n () => { throw cause; },\n (cleanupCause: unknown) => {\n // The operation failure stays the primary outcome: a backend that dies\n // mid-migration fails BOTH the body and the unlock, and the operator\n // must act on the body's uncertainty verdict, not on lock cleanup.\n // The unlock failure is retained as evidence, never as the headline.\n if (cause instanceof VibeError) throw new VibeError({ code: cause.code, message: cause.message, meta: { ...cause.meta, cleanupCause }, cause });\n throw cause;\n },\n ),\n );\n };\n // Reserve once: the callback already receives the pinned executor, even if it\n // exposes withSession itself. Never recursively reserve through that handle.\n return params.executor.withSession === undefined ? runLocked(params.executor) : params.executor.withSession({ run: runLocked });\n}\n\n/** Validate replay declarations and approvals without reading or writing a database. */\nexport function validateMigrationReplay(params: MigrationReplayOptions): void {\n const dialect = params.dialect ?? \"postgres\";\n assertProbeMode({ dialect, probe: params.probe });\n assertDistinctMigrationNames({ migrations: params.migrations });\n for (const migration of params.migrations) {\n assertMigrationMetadata({ migration, dialect });\n if (dialect === \"sqlite\" && usesSelfManagedTransactions({ sql: migration.sql })) assertSupportedSelfManagedScript({ sql: migration.sql, migration: migration.name, direction: \"up\" });\n assertNamedRemovals({ removals: migration.desiredState?.unmanagedRemovals ?? [], approved: params.removeUnmanaged, acceptIntegrityLoss: params.acceptIntegrityLoss });\n if (migration.desiredState !== undefined) {\n const state = migration.desiredState;\n assertRemovalAuthorization({ steps: diffSchemas({ from: state.from.schema, to: state.to.schema, dialect }), previous: state.from, dialect, namespace: dialect === \"sqlite\" ? \"main\" : \"public\", ...(params.acceptIntegrityLoss === undefined ? {} : { acceptIntegrityLoss: params.acceptIntegrityLoss }) });\n }\n assertSecurityAcknowledgement({ securityChanges: [...(migration.securityChanges ?? []), ...migrationRlsSecurityChanges({ migration, down: false })], ...(params.acceptSecurityChanges === undefined ? {} : { acceptSecurityChanges: params.acceptSecurityChanges }) });\n }\n}\n\nfunction assertMigrationMetadata(params: { migration: MigrationFile; dialect: Dialect }): void {\n const { migration, dialect } = params;\n if (migration.moduleOrigin !== undefined) {\n assertMaterializedModuleMigration({ migration });\n assertModuleOwnership({ origin: migration.moduleOrigin, desiredState: migration.desiredState });\n }\n if (migration.desiredStatePending === true) throw new VibeError({ code: \"VIBE_MIGRATION\", message: `Migration ${migration.name} has unfinalized desired state; finalize its reviewed before/after declarations before applying`, meta: { reason: \"desired-state-unfinalized\", migration: migration.name } });\n if (migration.desiredState !== undefined) {\n assertDesiredState({ value: migration.desiredState, migration: migration.name });\n if (migration.desiredState.dialect !== dialect) throw new VibeError({ code: \"VIBE_MIGRATION\", message: \"Migration desired-state dialect mismatch\", meta: { reason: \"desired-state-dialect-mismatch\", migration: migration.name } });\n }\n assertNativeMigrationMetadata({ migration, sql: migration.sql, dialect });\n assertExecutable({ migration, execution: migration.execution, sql: migration.sql, dialect });\n}\n\n/**\n * Apply under the migration lock after preflight, preserving recorded progress.\n * Complete mode requires a full ordered chain; subset mode remains the default.\n * Empty-checksum resolve records deliberately skip content verification.\n */\nexport async function applyMigrations(params: {\n executor: SqlExecutor;\n migrations: readonly MigrationFile[];\n /** Complete requires the recorded journal to be a prefix of this ordered chain. */\n history?: MigrationHistoryMode;\n acceptSecurityChanges?: boolean;\n acceptIntegrityLoss?: boolean;\n removeUnmanaged?: readonly SqlObjectIdentity[];\n /** Explicit permission for rollback-only PostgreSQL CHECK normalization probes. */\n probe?: \"none\" | \"rollback\" | \"temporary\";\n /** Execution dialect; postgres if omitted. */\n dialect?: Dialect;\n}): Promise<AppliedResult> {\n const { executor, migrations } = params;\n const dialect = params.dialect ?? \"postgres\";\n if (params.history !== undefined && params.history !== \"complete\" && params.history !== \"subset\") throw new VibeError({ code: \"VIBE_MIGRATION\", message: \"Unknown migration history validation mode\", meta: { reason: \"history-mode-invalid\" } });\n if (params.history === \"complete\") assertDistinctMigrationNames({ migrations });\n for (const migration of migrations) assertMigrationMetadata({ migration, dialect });\n // Pin the session and acquire the lock before inspecting or creating journals.\n return withMigrationLock({ executor, dialect, run: async (executor) => {\n let moduleRecords = await readModuleJournal({ executor, dialect });\n const recorded = new Map([...moduleRecords].map(([name, record]) => [name, record.row]));\n if (migrations.some((migration) => migration.moduleOrigin !== undefined) || [...moduleRecords.values()].some((record) => record.entry !== undefined)) {\n assertModuleUpgradeHistory({ migrations, records: moduleRecords });\n const namespace = await migrationNamespace({ executor, dialect });\n if (migrations.some((migration) => migration.moduleOrigin !== undefined && moduleNamespace({ origin: migration.moduleOrigin }) !== namespace)) throw new VibeError({ code: \"VIBE_MIGRATION\", message: \"Module placement differs from the active database namespace\", meta: { reason: \"module-placement-mismatch\" } });\n }\n if (params.history === \"complete\") assertCompleteHistory({ migrations, recorded, dialect });\n await assertApplyHistory({ executor, dialect, migrations, recorded });\n const pending = migrations.filter((migration) => {\n const stored = recorded.get(migration.name);\n return stored === undefined || !isCompleteRecord({ dialect, migration, stored });\n });\n validateMigrationReplay({ ...params, migrations: pending, dialect });\n await ensureMigrationsTable({ executor, dialect });\n if (migrations.some((migration) => migration.moduleOrigin !== undefined)) await ensureModuleJournal({ executor, dialect });\n\n const applied: string[] = [];\n const skipped: string[] = [];\n\n for (const migration of migrations) {\n const stored = recorded.get(migration.name);\n if (migration.moduleOrigin !== undefined && (stored === undefined || !isCompleteRecord({ dialect, migration, stored }))) await assertLiveModuleOwnership({ executor, origin: migration.moduleOrigin, resume: stored !== undefined });\n if (stored !== undefined) {\n // Negative statement_index = a mysql rollback started but did not\n // finish (see rollbackMigration). Applying over it would corrupt both\n // directions — finish or repair first.\n if (stored.statementIndex < 0) {\n throw new VibeError({\n code: \"VIBE_MIGRATION\",\n message: `migration \"${migration.name}\" is mid-rollback (${-stored.statementIndex - 1} down statement(s) done) — finish it with \\`migrate down\\` or repair with resolveMigration before applying`,\n meta: { migration: migration.name, statementIndex: stored.statementIndex },\n });\n }\n if (isCompleteRecord({ dialect, migration, stored })) {\n assertChecksumMatches({ migration, stored: stored.checksum });\n skipped.push(migration.name);\n continue;\n }\n // Partial row (mysql, a self-managed sqlite script, or a declared\n // nontransactional migration) → resume, but only for unchanged content.\n assertResumable({ migration, stored });\n await withSessionLimits({\n executor,\n dialect,\n ...(migration.execution === undefined ? {} : { execution: migration.execution }),\n run: () => runNonTransactional({\n executor,\n dialect,\n migration,\n start: stored.statementIndex,\n moduleOrigins: applicationModuleOrigins({ migration, records: moduleRecords }),\n ...(params.probe === undefined ? {} : { probe: params.probe }),\n insertRecord: false,\n ...(stored.error === undefined ? {} : { storedError: stored.error }),\n }),\n });\n if (migration.moduleOrigin !== undefined) moduleRecords = await readModuleJournal({ executor, dialect });\n applied.push(migration.name);\n continue;\n }\n\n if (usesStatementBookkeeping({ dialect, sql: migration.sql, ...(migration.execution === undefined ? {} : { execution: migration.execution }) })) {\n await withSessionLimits({\n executor,\n dialect,\n ...(migration.execution === undefined ? {} : { execution: migration.execution }),\n run: () => runNonTransactional({ executor, dialect, migration, moduleOrigins: applicationModuleOrigins({ migration, records: moduleRecords }), start: 0, insertRecord: true, ...(params.probe === undefined ? {} : { probe: params.probe }) }),\n });\n } else {\n await runTransactional({ executor, dialect, migration, moduleOrigins: applicationModuleOrigins({ migration, records: moduleRecords }), ...(params.probe === undefined ? {} : { probe: params.probe }) });\n }\n if (migration.moduleOrigin !== undefined) moduleRecords = await readModuleJournal({ executor, dialect });\n applied.push(migration.name);\n }\n\n // Verify only the final deployed declaration, never intermediate historical targets.\n const final = migrations.at(-1);\n if (final?.desiredState !== undefined) {\n if (params.probe === \"rollback\") await executor({ text: \"BEGIN\" });\n try {\n assertMigrationState({ report: await verifyMigrationTransition({ executor, dialect, from: final.desiredState.from, to: final.desiredState.to, removals: final.desiredState.unmanagedRemovals, ...(params.probe === undefined ? {} : { probe: params.probe }) }) });\n } finally {\n if (params.probe === \"rollback\") await executor({ text: \"ROLLBACK\" });\n }\n }\n return { applied, skipped };\n } });\n}\n\n// ─── Status ───────────────────────────────────────────────────────\n\n/** Compare known migrations against the bookkeeping table. */\nexport async function migrationStatus(params: {\n executor: SqlExecutor;\n migrations: readonly MigrationFile[];\n /** Bookkeeping dialect; postgres if omitted. */\n dialect?: Dialect;\n /** Trusted current deployment; policy state is verified independently of migration records. */\n schema?: SchemaIR;\n}): Promise<MigrationStatus> {\n const { executor, migrations } = params;\n const dialect = params.dialect ?? \"postgres\";\n // No lock or journal creation: status stays nonblocking and read-only.\n const recorded = await recordedRows({ executor, dialect, modules: migrations.some((migration) => migration.moduleOrigin !== undefined) });\n\n const applied: string[] = [];\n const pending: string[] = [];\n const mismatched: string[] = [];\n const rollingBack: string[] = [];\n const known = new Set(migrations.map((migration) => migration.name));\n const unknownFiles: string[] = [];\n for (const [name, stored] of recorded) {\n if (!known.has(name)) {\n unknownFiles.push(name);\n if (stored.statementIndex < 0) rollingBack.push(name);\n }\n }\n\n for (const migration of migrations) {\n const stored = recorded.get(migration.name);\n if (stored === undefined) {\n pending.push(migration.name);\n continue;\n }\n if (stored.statementIndex < 0) {\n rollingBack.push(migration.name);\n continue;\n }\n if (stored.checksum === \"\" && stored.error === undefined) {\n applied.push(migration.name);\n continue;\n }\n if (stored.checksum !== \"\" && stored.checksum !== checksumOf({ migration })) {\n mismatched.push(migration.name);\n continue;\n }\n // A partial row re-applies (resumes) — report it as pending. The SAME\n // predicate apply uses: reporting a partial self-managed sqlite record as\n // \"applied\" while apply would resume it is a lie about the database.\n if (isCompleteRecord({ dialect, migration, stored }) && stored.error === undefined) applied.push(migration.name);\n else pending.push(migration.name);\n }\n\n if (dialect === \"postgres\") {\n const expected = params.schema ?? [...migrations].reverse().find((migration) => applied.includes(migration.name) && migration.rls !== undefined)?.rls?.to;\n await introspectPostgres({ executor, ...(expected === undefined ? {} : { rlsSchema: expected }), requireInstalledRls: true });\n }\n return { applied, pending, mismatched, rollingBack, ...(unknownFiles.length === 0 ? {} : { unknownFiles }) };\n}\n\n/**\n * The bookkeeping journal itself, in the order rows were written — i.e. the\n * order migrations were actually applied, which is what a rollback must walk\n * backwards. Every row is returned with its checksum, cursor and classification;\n * mismatched, partial and fileless rows still occupy their position in history.\n *\n * Takes no lock, exactly like `migrationStatus`.\n */\nexport async function recordedMigrations(params: {\n executor: SqlExecutor;\n /** Known migration files — classification needs their SQL. */\n migrations: readonly MigrationFile[];\n /** Bookkeeping dialect; postgres if omitted. */\n dialect?: Dialect;\n}): Promise<RecordedMigration[]> {\n const { executor, migrations } = params;\n const dialect = params.dialect ?? \"postgres\";\n const recorded = await recordedRows({ executor, dialect, modules: migrations.some((migration) => migration.moduleOrigin !== undefined) });\n return classifyJournal({ dialect, migrations, recorded });\n}\n\n/** Shared journal classification; history imports this, never the reverse. */\nexport function classifyJournal(params: { dialect: Dialect; migrations: readonly MigrationFile[]; recorded: ReadonlyMap<string, JournalRow> }): RecordedMigration[] {\n const { dialect, migrations, recorded } = params;\n const byName = new Map(migrations.map((migration) => [migration.name, migration]));\n\n const journal: RecordedMigration[] = [];\n for (const [name, stored] of recorded) {\n const migration = byName.get(name);\n journal.push({\n name,\n checksum: stored.checksum,\n statementIndex: stored.statementIndex,\n state:\n migration === undefined\n ? \"unknown-file\"\n : stored.checksum !== \"\" && stored.checksum !== checksumOf({ migration })\n ? \"mismatched\"\n : stored.statementIndex < 0\n ? \"rolling-back\"\n : isCompleteRecord({ dialect, migration, stored }) && stored.error === undefined\n ? \"applied\"\n : \"partial\",\n });\n }\n return journal;\n}\n\n// ─── Resolve (repair) ─────────────────────────────────────────────\n\n/**\n * Repair the bookkeeping table without running SQL: mark a migration as\n * `\"applied\"` (upsert its record; pass `checksum` to also pin its content —\n * omitted, the record stores an empty checksum and later runs skip\n * verification for it) or `\"rolled-back\"` (delete its record).\n */\nexport async function resolveMigration(params: {\n executor: SqlExecutor;\n name: string;\n as: \"applied\" | \"rolled-back\";\n checksum?: string;\n /** Bookkeeping dialect; postgres if omitted. */\n dialect?: Dialect;\n}): Promise<void> {\n const dialect = params.dialect ?? \"postgres\";\n await withMigrationLock({ executor: params.executor, dialect, run: (executor) => repairMigration({ ...params, executor, dialect }) });\n}\n\nasync function repairMigration(params: {\n executor: SqlExecutor;\n name: string;\n as: \"applied\" | \"rolled-back\";\n checksum?: string;\n dialect: Dialect;\n}): Promise<void> {\n const { executor, name, dialect } = params;\n const moduleRecord = (await readModuleJournal({ executor, dialect })).get(name);\n if (moduleRecord?.entry !== undefined) throw new VibeError({ code: \"VIBE_MIGRATION\", message: \"Module history cannot be marked applied or deleted without verified module recovery\", meta: { reason: \"module-resolution-required\", moduleId: moduleRecord.entry.migration.moduleOrigin!.moduleId } });\n await ensureMigrationsTable({ executor, dialect });\n\n if (params.as === \"applied\") {\n const insert = `INSERT INTO ${q(dialect, MIGRATIONS_TABLE_NAME)} (${q(dialect, \"name\")}, ${q(dialect, \"checksum\")}, ${q(dialect, \"statement_index\")}) VALUES (${ph(dialect, 1)}, ${ph(dialect, 2)}, ${RESOLVED_STATEMENT_INDEX})`;\n // `error` is cleared on every dialect. That column also carries the\n // in-flight marker, and a repaired record still reading \"VIBE_INFLIGHT:2\"\n // would show a migration recorded as applied as though it were stuck\n // mid-statement.\n const upsert =\n dialect === \"mysql\"\n ? `${insert} ON DUPLICATE KEY UPDATE \\`checksum\\` = VALUES(\\`checksum\\`), \\`statement_index\\` = VALUES(\\`statement_index\\`), \\`error\\` = NULL`\n : `${insert} ON CONFLICT (\"name\") DO UPDATE SET \"checksum\" = EXCLUDED.\"checksum\", \"statement_index\" = EXCLUDED.\"statement_index\", \"error\" = NULL`;\n await executor({ text: upsert, values: [name, params.checksum ?? \"\"] });\n return;\n }\n await executor({\n text: `DELETE FROM ${q(dialect, MIGRATIONS_TABLE_NAME)} WHERE ${q(dialect, \"name\")} = ${ph(dialect, 1)}`,\n values: [name],\n });\n}\n\n// ─── Rollback ─────────────────────────────────────────────────────\n\n/**\n * Roll back ONE applied migration by executing its `downSql` and deleting its\n * bookkeeping row, under the same advisory lock as `applyMigrations`.\n *\n * Guards, in order: the migration must carry `downSql` (older migrations\n * predate down-migration support), must be recorded as applied, and — when\n * the record pins a checksum — its up SQL must still match (rolling back with\n * drifted files would run a down that no longer mirrors what was applied).\n *\n * Dialect behavior mirrors apply exactly (same `usesStatementBookkeeping`\n * predicate, read over the DOWN script): postgres/sqlite run the down inside\n * BEGIN/COMMIT with the bookkeeping DELETE (atomic). mysql DDL auto-commits,\n * and a sqlite down containing a table-rebuild block cannot be wrapped, so\n * both record progress per-statement in the existing `statement_index`\n * column, NEGATIVE to mark the rollback direction: after k down statements,\n * the row stores -(k+1). A failed rollback resumes from the recorded\n * statement on the next call; `applyMigrations` refuses a mid-rollback record\n * (that check reads the sign only, so it holds for every dialect). A\n * partially APPLIED migration cannot be rolled back — its down mirrors the\n * full up; finish applying (apply resumes) or repair with `resolveMigration`.\n */\ntype RollbackOptions = {\n executor: SqlExecutor;\n acceptSecurityChanges?: boolean;\n acceptIntegrityLoss?: boolean;\n probe?: \"none\" | \"rollback\" | \"temporary\";\n dialect?: Dialect;\n};\n\n/** Reverse one file only if it is still newest when the lock is acquired. */\nexport async function rollbackMigration(params: RollbackOptions & { migration: MigrationFile }): Promise<void> {\n const { executor, migration } = params;\n const dialect = params.dialect ?? \"postgres\";\n const downSql = validateRollbackFile({ ...params, dialect });\n await withMigrationLock({ executor, dialect, run: async (executor) => {\n const recorded = await recordedRows({ executor, dialect, modules: true });\n const stored = assertRollbackRecord({ migration, stored: recorded.get(migration.name), dialect });\n const newest = [...recorded.keys()].at(-1);\n if (newest !== migration.name) throw new VibeError({ code: \"VIBE_MIGRATION\", message: `Migration \"${migration.name}\" is not the newest recorded migration; select rollback again`, meta: { reason: \"rollback-not-latest\", migration: migration.name, newest } });\n await validateRollbackRecovery({ executor, migration, downSql, stored, dialect });\n await executeRollback({ ...params, executor, dialect, downSql, stored });\n } });\n}\n\n/**\n * Select from the current journal under one lock. With to, retain that applied\n * migration and reverse every newer row; without it, reverse only the newest.\n * All selected declarations/approvals/progress are checked before any reversal.\n * A later SQL failure can still leave a successfully reversed prefix on disk.\n * SQLite cross-connection ownership remains the caller's responsibility.\n */\nexport async function rollbackMigrations(params: RollbackOptions & {\n migrations: readonly MigrationFile[];\n to?: string;\n}): Promise<RollbackResult> {\n const { executor, migrations } = params;\n const dialect = params.dialect ?? \"postgres\";\n assertDistinctMigrationNames({ migrations });\n return withMigrationLock({ executor, dialect, run: async (executor): Promise<RollbackResult> => {\n const recorded = await recordedRows({ executor, dialect, modules: true });\n const journal = classifyJournal({ migrations, recorded, dialect });\n const byName = new Map(migrations.map((migration) => [migration.name, migration]));\n let start = Math.max(0, journal.length - 1);\n if (params.to !== undefined) {\n const target = journal.findIndex((row) => row.name === params.to);\n const row = journal[target];\n if (row?.state !== \"applied\") throw new VibeError({ code: \"VIBE_MIGRATION\", message: `Rollback target \"${params.to}\" is not a known applied migration`, meta: { reason: \"rollback-target-invalid\", to: params.to, state: row?.state } });\n assertMigrationMetadata({ migration: byName.get(row.name)!, dialect });\n start = target + 1;\n }\n const plan: { migration: MigrationFile; downSql: readonly string[]; stored: RecordedRow }[] = [];\n for (const row of journal.slice(start).reverse()) {\n const migration = byName.get(row.name);\n if (migration === undefined) throw new VibeError({ code: \"VIBE_MIGRATION\", message: `Cannot roll back \"${row.name}\" without its migration file`, meta: { reason: \"rollback-file-missing\", migration: row.name } });\n const stored = assertRollbackRecord({ migration, stored: recorded.get(row.name), dialect });\n const downSql = validateRollbackFile({ ...params, migration, dialect });\n plan.push({ migration, downSql, stored });\n }\n for (const entry of plan) await validateRollbackRecovery({ executor, dialect, ...entry });\n const rolledBack: string[] = [];\n for (const entry of plan) {\n await executeRollback({ ...params, executor, dialect, ...entry });\n rolledBack.push(entry.migration.name);\n }\n return { rolledBack };\n } });\n}\n\nfunction validateRollbackFile(params: RollbackOptions & { migration: MigrationFile; dialect: Dialect }): readonly string[] {\n const { migration, dialect } = params;\n if (migration.desiredStatePending === true) throw new VibeError({ code: \"VIBE_MIGRATION\", message: \"Unfinalized desired state cannot be rolled back\", meta: { reason: \"desired-state-unfinalized\", migration: migration.name } });\n if (migration.moduleOrigin !== undefined) {\n assertMaterializedModuleMigration({ migration });\n assertModuleOwnership({ origin: migration.moduleOrigin, desiredState: migration.desiredState });\n }\n const downSql = migration.downSql;\n if (downSql === undefined) throw new VibeError({ code: \"VIBE_MIGRATION\", message: `migration \"${migration.name}\" has no down.sql; roll it back manually, then repair with resolveMigration (as: \"rolled-back\")`, meta: { reason: \"rollback-down-missing\", migration: migration.name } });\n assertProbeMode({ dialect, probe: params.probe });\n if (migration.desiredState !== undefined) {\n assertDesiredState({ value: migration.desiredState, migration: migration.name });\n if (migration.desiredState.dialect !== dialect) throw new VibeError({ code: \"VIBE_MIGRATION\", message: \"Migration desired-state dialect mismatch\", meta: { reason: \"desired-state-dialect-mismatch\" } });\n assertRemovalAuthorization({ steps: diffSchemas({ from: migration.desiredState.to.schema, to: (migration.desiredState.down ?? migration.desiredState.from).schema, dialect }), previous: migration.desiredState.to, dialect, namespace: dialect === \"sqlite\" ? \"main\" : \"public\", ...(params.acceptIntegrityLoss === undefined ? {} : { acceptIntegrityLoss: params.acceptIntegrityLoss }) });\n }\n assertNativeMigrationMetadata({ migration, sql: downSql, dialect });\n assertExecutable({ migration, execution: migration.downExecution, sql: downSql, dialect });\n assertSecurityAcknowledgement({ securityChanges: [...(migration.downSecurityChanges ?? []), ...migrationRlsSecurityChanges({ migration, down: true })], ...(params.acceptSecurityChanges === undefined ? {} : { acceptSecurityChanges: params.acceptSecurityChanges }) });\n if (dialect === \"sqlite\" && usesSelfManagedTransactions({ sql: downSql })) assertSupportedSelfManagedScript({ sql: downSql, migration: migration.name, direction: \"down\" });\n return downSql;\n}\n\nfunction assertRollbackRecord(params: { migration: MigrationFile; stored?: RecordedRow; dialect: Dialect }): RecordedRow {\n const { migration, stored, dialect } = params;\n if (stored === undefined) throw new VibeError({ code: \"VIBE_MIGRATION\", message: `migration \"${migration.name}\" is not recorded as applied; nothing to roll back`, meta: { migration: migration.name } });\n assertChecksumMatches({ migration, stored: stored.checksum });\n if (stored.statementIndex >= 0 && (!isCompleteRecord({ dialect, migration, stored }) || stored.error !== undefined)) throw new VibeError({ code: \"VIBE_MIGRATION\", message: `migration \"${migration.name}\" is only partially applied or has an unresolved error; its down mirrors the FULL up. Finish or repair with resolveMigration`, meta: { reason: \"rollback-partial-up\", migration: migration.name, statementIndex: stored.statementIndex } });\n return stored;\n}\n\nasync function validateRollbackRecovery(params: { executor: SqlExecutor; dialect: Dialect; migration: MigrationFile; downSql: readonly string[]; stored: RecordedRow }): Promise<void> {\n const { executor, dialect, migration, downSql, stored } = params;\n if (stored.statementIndex >= 0) return;\n const start = -stored.statementIndex - 1;\n if (start > downSql.length) throw new VibeError({ code: \"VIBE_MIGRATION\", message: \"Rollback progress exceeds its statement count\", meta: { reason: \"rollback-progress-invalid\", migration: migration.name } });\n if (dialect === \"sqlite\" && usesSelfManagedTransactions({ sql: downSql })) assertSelfManagedResumeSafe({ sql: downSql, start, migration: migration.name, direction: \"down\" });\n if (!marksInflight({ dialect, execution: migration.downExecution }) || start >= downSql.length) return;\n const operation = migration.downExecution?.transaction === \"none\" ? operationFor({ execution: migration.downExecution, statement: start }) : undefined;\n if (operation !== undefined) await establishOperationState({ executor, dialect, operation });\n else if (inflightStatement({ error: stored.error }) === start) throw uncertainStatement({ migration: migration.name, statements: downSql, index: start, dialect, direction: \"down\" });\n}\n\nasync function executeRollback(params: RollbackOptions & { migration: MigrationFile; dialect: Dialect; downSql: readonly string[]; stored: RecordedRow }): Promise<void> {\n const { executor, dialect, migration, downSql, stored } = params;\n const moduleOrigins = applicationModuleOrigins({ migration, records: await readModuleJournal({ executor, dialect }) });\n if (usesStatementBookkeeping({ dialect, sql: downSql, ...(migration.downExecution === undefined ? {} : { execution: migration.downExecution }) })) {\n const start = stored.statementIndex < 0 ? -stored.statementIndex - 1 : 0;\n await withSessionLimits({\n executor, dialect, execution: migration.downExecution,\n run: () => runNonTransactionalDown({ executor, dialect, migration, moduleOrigins, downSql, start, probe: params.probe, storedError: stored.error }),\n });\n } else await runTransactionalDown({ executor, dialect, migration, moduleOrigins, downSql, probe: params.probe });\n}\n\n/** Atomic down path (postgres, sqlite): statements + record DELETE in one tx. */\nasync function runTransactionalDown(params: {\n executor: SqlExecutor;\n dialect: Dialect;\n migration: MigrationFile;\n moduleOrigins: readonly ModuleMigrationOrigin[];\n downSql: readonly string[];\n probe?: \"none\" | \"rollback\" | \"temporary\";\n}): Promise<void> {\n const { executor, dialect, migration, downSql } = params;\n const selfManaged = dialect === \"sqlite\" && usesSelfManagedTransactions({ sql: downSql });\n const wrap = !selfManaged;\n\n if (wrap) await executor({ text: \"BEGIN\" });\n try {\n const limits = migration.downExecution;\n if (wrap && dialect === \"postgres\" && limits !== undefined) {\n if ((limits.lockTimeoutMs ?? 0) > 0) await executor({ text: renderMigrationSessionSet({ dialect: getSqlDialect({ dialect }), setting: \"lock_timeout\", milliseconds: limits.lockTimeoutMs as number, local: true }).text });\n if ((limits.statementTimeoutMs ?? 0) > 0) await executor({ text: renderMigrationSessionSet({ dialect: getSqlDialect({ dialect }), setting: \"statement_timeout\", milliseconds: limits.statementTimeoutMs as number, local: true }).text });\n }\n if (migration.desiredState !== undefined) assertMigrationState({ report: await verifyMigrationTransition({ executor, dialect, from: migration.desiredState.from, to: migration.desiredState.to, removals: migration.desiredState.unmanagedRemovals, ...(params.probe === undefined ? {} : { probe: params.probe }) }) });\n if (migration.rls !== undefined) await introspectPostgres({ executor, rlsSchema: migration.rls.to, inTransaction: true, requireInstalledRls: true });\n await assertApplicationModuleState({ executor, origins: params.moduleOrigins, probe: params.probe });\n for (const statement of downSql) {\n await executeStatement({ executor, statement, dialect });\n }\n if (migration.desiredState !== undefined) assertMigrationState({ report: await verifyMigrationTransition({ executor, dialect, from: migration.desiredState.to, to: migration.desiredState.down ?? migration.desiredState.from, ...(params.probe === undefined ? {} : { probe: params.probe }) }) });\n if (migration.rls !== undefined) await introspectPostgres({ executor, rlsSchema: migration.rls.from, inTransaction: true, requireInstalledRls: true });\n await assertApplicationModuleState({ executor, origins: params.moduleOrigins, probe: params.probe });\n await executor({\n text: `DELETE FROM ${q(dialect, MIGRATIONS_TABLE_NAME)} WHERE ${q(dialect, \"name\")} = ${ph(dialect, 1)}`,\n values: [migration.name],\n });\n if (wrap) await executor({ text: \"COMMIT\" });\n } catch (error) {\n if (wrap) {\n try {\n await executor({ text: \"ROLLBACK\" });\n } catch {\n // Rollback is best-effort; the original failure matters more.\n }\n } else {\n await cleanupSelfManagedFailure({ executor });\n }\n throw new VibeError({\n code: \"VIBE_MIGRATION\",\n message: `rollback of \"${migration.name}\" failed: ${error instanceof Error ? error.message : String(error)}`,\n meta: { migration: migration.name, ...timeoutDiagnostic({ error }) },\n cause: error,\n });\n }\n}\n\n/**\n * Per-statement down path (mysql, and self-managed sqlite down scripts):\n * progress in `statement_index`, stored NEGATIVE (-(completed + 1)) so\n * apply/status can tell the direction apart.\n */\nasync function runNonTransactionalDown(params: {\n executor: SqlExecutor;\n dialect: Dialect;\n migration: MigrationFile;\n moduleOrigins: readonly ModuleMigrationOrigin[];\n downSql: readonly string[];\n start: number;\n /** The journal row's `error` text when resuming — may hold an in-flight marker. */\n storedError?: string;\n probe?: \"none\" | \"rollback\" | \"temporary\";\n}): Promise<void> {\n const { executor, dialect, migration, downSql } = params;\n const table = q(dialect, MIGRATIONS_TABLE_NAME);\n const selfManagedDown = dialect === \"sqlite\" && usesSelfManagedTransactions({ sql: downSql });\n // Same rule, same moment, in the down direction (see the up path above).\n if (selfManagedDown) {\n assertSupportedSelfManagedScript({ sql: downSql, migration: migration.name, direction: \"down\" });\n assertSelfManagedResumeSafe({ sql: downSql, start: params.start, migration: migration.name, direction: \"down\" });\n }\n const execution = migration.downExecution;\n const declared = execution?.transaction === \"none\";\n // Identical regime to the up direction: mysql always has the window, postgres\n // only when declared, sqlite closes it with a per-statement transaction.\n const marks = marksInflight({ dialect, ...(execution === undefined ? {} : { execution }) });\n const selfManaged = selfManagedDown;\n // A recorded index can point INSIDE a rebuild block, one past its\n // session-scoped pragma — rewind to the block's start (see execute.ts).\n const start = selfManaged\n ? selfManagedResumeStart({ sql: downSql, start: params.start })\n : params.start;\n\n const recordProgress = async (completed: number): Promise<void> => {\n await executor({\n text: `UPDATE ${table} SET ${q(dialect, \"statement_index\")} = ${ph(dialect, 1)}, ${q(dialect, \"error\")} = NULL WHERE ${q(dialect, \"name\")} = ${ph(dialect, 2)}`,\n values: [-(completed + 1), migration.name],\n });\n };\n\n // Same resume contract as the up direction: a down statement whose effect\n // cannot be established is never replayed automatically.\n const resumeOperation = marks && declared && start < downSql.length\n ? operationFor({ ...(execution === undefined ? {} : { execution }), statement: start })\n : undefined;\n\n // This refusal is checked BEFORE the \"rollback started\" write below, and the\n // order is the whole point: that write sets `error` to NULL and would take\n // the in-flight marker with it. A refusal thrown after it is SPENT — the\n // operator's next `migrate down` reads a clean row, finds nothing in flight\n // and replays the statement silently, which is the defect itself.\n if (\n marks\n && start < downSql.length\n && resumeOperation === undefined\n && inflightStatement({ ...(params.storedError === undefined ? {} : { error: params.storedError }) }) === start\n ) {\n throw uncertainStatement({ migration: migration.name, statements: downSql, index: start, dialect, direction: \"down\" });\n }\n\n // Probe before any write that could clear the interrupted statement's marker.\n const resumeState = resumeOperation === undefined ? undefined : await establishOperationState({ executor, dialect, operation: resumeOperation });\n\n await assertApplicationModuleState({ executor, origins: params.moduleOrigins, probe: params.probe });\n // Mark the rollback as started before the first statement runs, so a crash\n // between statements can never be mistaken for a completed apply.\n if (start === 0) {\n if (migration.desiredState !== undefined) assertMigrationState({ report: await verifyMigrationTransition({ executor, dialect, from: migration.desiredState.from, to: migration.desiredState.to, removals: migration.desiredState.unmanagedRemovals, ...(params.probe === undefined ? {} : { probe: params.probe }) }) });\n await recordProgress(0);\n }\n\n let cursor = start;\n if (\n resumeOperation !== undefined\n && resumeState === \"satisfied\"\n ) {\n if (start + 1 === downSql.length && migration.desiredState !== undefined) assertMigrationState({ report: await verifyMigrationTransition({ executor, dialect, from: migration.desiredState.to, to: migration.desiredState.down ?? migration.desiredState.from, ...(params.probe === undefined ? {} : { probe: params.probe }) }) });\n if (start + 1 === downSql.length) await assertApplicationModuleState({ executor, origins: params.moduleOrigins, probe: params.probe });\n await recordProgress(start + 1);\n cursor = start + 1;\n }\n\n for (let index = cursor; index < downSql.length; index += 1) {\n const atomic = selfManaged && canCheckpointAtomically({ sql: downSql, index });\n const commitsBlock = selfManaged && isSelfManagedCommit({ statement: downSql[index] as string });\n if (marks) {\n await executor({\n text: `UPDATE ${table} SET ${q(dialect, \"error\")} = ${ph(dialect, 1)} WHERE ${q(dialect, \"name\")} = ${ph(dialect, 2)}`,\n values: [`${INFLIGHT_PREFIX}${index}`, migration.name],\n });\n }\n if (atomic) await executor({ text: \"BEGIN\" });\n try {\n // Persist the index AFTER COMMIT in the transaction it describes. A kill\n // before COMMIT rolls back both; a kill after it cannot replay the block.\n if (commitsBlock) {\n if (migration.desiredState !== undefined && downSql.slice(index + 1).every((statement) => /^\\s*PRAGMA\\s+foreign_keys\\s*=\\s*ON\\s*;?\\s*$/i.test(statement))) assertMigrationState({ report: await verifySqliteTransitionBeforeRestore({ executor, dialect, from: migration.desiredState.to, to: migration.desiredState.down ?? migration.desiredState.from, ...(params.probe === undefined ? {} : { probe: params.probe }) }) });\n await assertApplicationModuleState({ executor, origins: params.moduleOrigins, probe: params.probe, sqliteRestorePending: true });\n await recordProgress(index + 1);\n }\n await executeStatement({ executor, statement: downSql[index] as string, dialect });\n if (index === downSql.length - 1 && migration.desiredState !== undefined) assertMigrationState({ report: await verifyMigrationTransition({ executor, dialect, from: migration.desiredState.to, to: migration.desiredState.down ?? migration.desiredState.from, ...(params.probe === undefined ? {} : { probe: params.probe }) }) });\n if (index === downSql.length - 1) await assertApplicationModuleState({ executor, origins: params.moduleOrigins, probe: params.probe });\n if (atomic) {\n await recordProgress(index + 1);\n await executor({ text: \"COMMIT\" });\n }\n } catch (error) {\n // Self-managed scripts fail INSIDE their own transaction: close it first\n // or the error UPDATE below is rolled back with it (see the apply path).\n if (selfManaged) await cleanupSelfManagedFailure({ executor });\n try {\n await executor({\n text: `UPDATE ${table} SET ${q(dialect, \"error\")} = ${ph(dialect, 1)} WHERE ${q(dialect, \"name\")} = ${ph(dialect, 2)}`,\n values: [marks ? `${INFLIGHT_PREFIX}${index}` : error instanceof Error ? error.message : String(error), migration.name],\n });\n } catch {\n // Progress row update is best-effort; the original failure matters more.\n }\n throw new VibeError({\n code: \"VIBE_MIGRATION\",\n message: `rollback of \"${migration.name}\" failed at down statement ${index + 1} of ${downSql.length}: ${error instanceof Error ? error.message : String(error)}. ${marks ? \"The statement outcome is unknown; inspect its effects before resolving or retrying.\" : \"Progress is recorded; re-running the rollback resumes from this statement.\"}`,\n meta: { migration: migration.name, statementIndex: index, ...(marks ? { outcome: \"unknown\" } : {}), ...timeoutDiagnostic({ error }) },\n cause: error,\n });\n }\n if (!atomic && !commitsBlock) await recordProgress(index + 1);\n }\n\n if (migration.desiredState !== undefined) assertMigrationState({ report: await verifyMigrationTransition({ executor, dialect, from: migration.desiredState.to, to: migration.desiredState.down ?? migration.desiredState.from, ...(params.probe === undefined ? {} : { probe: params.probe }) }) });\n await executor({\n text: `DELETE FROM ${table} WHERE ${q(dialect, \"name\")} = ${ph(dialect, 1)}`,\n values: [migration.name],\n });\n}\n\n// ─── Execution paths ──────────────────────────────────────────────\n\n/** Transactional path (postgres, sqlite) — see module doc. */\nasync function runTransactional(params: {\n executor: SqlExecutor;\n dialect: Dialect;\n migration: MigrationFile;\n moduleOrigins: readonly ModuleMigrationOrigin[];\n probe?: \"none\" | \"rollback\" | \"temporary\";\n}): Promise<void> {\n const { executor, dialect, migration } = params;\n // sqlite rebuild scripts manage their own transactions — never wrap them.\n const selfManaged = dialect === \"sqlite\" && usesSelfManagedTransactions({ sql: migration.sql });\n const wrap = !selfManaged;\n\n if (wrap) await executor({ text: \"BEGIN\" });\n try {\n // Declared limits ride the transaction itself here (SET LOCAL), so COMMIT\n // or ROLLBACK restores them with no separate bookkeeping.\n const limits = migration.execution;\n if (wrap && dialect === \"postgres\" && limits !== undefined) {\n if ((limits.lockTimeoutMs ?? 0) > 0) await executor({ text: renderMigrationSessionSet({ dialect: getSqlDialect({ dialect }), setting: \"lock_timeout\", milliseconds: limits.lockTimeoutMs as number, local: true }).text });\n if ((limits.statementTimeoutMs ?? 0) > 0) await executor({ text: renderMigrationSessionSet({ dialect: getSqlDialect({ dialect }), setting: \"statement_timeout\", milliseconds: limits.statementTimeoutMs as number, local: true }).text });\n }\n await assertForwardStart({ executor, dialect, migration, ...(params.probe === undefined ? {} : { probe: params.probe }) });\n await assertApplicationModuleState({ executor, origins: params.moduleOrigins, probe: params.probe });\n if (migration.rls !== undefined) await introspectPostgres({ executor, rlsSchema: migration.rls.from, inTransaction: true, requireInstalledRls: true });\n let statementIndex = 0;\n for (const statement of migration.sql) {\n await executeStatement({ executor, statement, dialect });\n statementIndex += 1;\n }\n if (migration.desiredState !== undefined) assertMigrationState({ report: await verifyMigrationTransition({ executor, from: migration.desiredState.from, to: migration.desiredState.to, removals: migration.desiredState.unmanagedRemovals, dialect, ...(params.probe === undefined ? {} : { probe: params.probe }) }) });\n if (migration.rls !== undefined) await introspectPostgres({ executor, rlsSchema: migration.rls.to, inTransaction: true, requireInstalledRls: true });\n await assertApplicationModuleState({ executor, origins: params.moduleOrigins, probe: params.probe });\n if (migration.moduleOrigin !== undefined) await insertModuleJournal({ executor, dialect, migration, index: statementIndex, complete: true });\n else await executor({\n text: `INSERT INTO ${q(dialect, MIGRATIONS_TABLE_NAME)} (${q(dialect, \"name\")}, ${q(dialect, \"checksum\")}, ${q(dialect, \"statement_index\")}) VALUES (${ph(dialect, 1)}, ${ph(dialect, 2)}, ${ph(dialect, 3)})`,\n values: [migration.name, checksumOf({ migration }), statementIndex],\n });\n if (wrap) await executor({ text: \"COMMIT\" });\n } catch (error) {\n if (wrap) {\n try {\n await executor({ text: \"ROLLBACK\" });\n } catch {\n // Rollback is best-effort; the original failure matters more.\n }\n } else {\n await cleanupSelfManagedFailure({ executor });\n }\n throw new VibeError({\n code: \"VIBE_MIGRATION\",\n message: `migration \"${migration.name}\" failed: ${error instanceof Error ? error.message : String(error)}`,\n meta: { migration: migration.name },\n cause: error,\n });\n }\n}\n\n/**\n * Per-statement path (mysql — DDL auto-commits — and self-managed sqlite\n * scripts, which cannot be wrapped): per-statement progress in the\n * bookkeeping row; failures record the error and later runs resume.\n */\nasync function runNonTransactional(params: {\n executor: SqlExecutor;\n dialect: Dialect;\n migration: MigrationFile;\n moduleOrigins: readonly ModuleMigrationOrigin[];\n start: number;\n insertRecord: boolean;\n /** The journal row's `error` text when resuming — may hold an in-flight marker. */\n storedError?: string;\n probe?: \"none\" | \"rollback\" | \"temporary\";\n}): Promise<void> {\n const { executor, dialect, migration, insertRecord } = params;\n const table = q(dialect, MIGRATIONS_TABLE_NAME);\n const selfManaged = dialect === \"sqlite\" && usesSelfManagedTransactions({ sql: migration.sql });\n // Before the journal row, before the first statement: a self-managed script\n // is only recoverable in the shape the generator emits (execute.ts). This\n // sits HERE rather than up front with the other validations so that a\n // deviant migration already recorded as applied cannot wedge `migrate apply`\n // for the whole history — a record repaired with `resolveMigration` skips\n // before reaching this point, which is the operator's way out.\n if (selfManaged) {\n assertSupportedSelfManagedScript({ sql: migration.sql, migration: migration.name, direction: \"up\" });\n assertSelfManagedResumeSafe({ sql: migration.sql, start: params.start, migration: migration.name, direction: \"up\" });\n }\n const execution = migration.execution;\n const declared = execution?.transaction === \"none\";\n // mysql has this window whether or not anyone declared anything; postgres\n // only when the migration opted out of transactions. sqlite closes it instead\n // of recording it (see the atomic checkpoint below).\n const marks = marksInflight({ dialect, ...(execution === undefined ? {} : { execution }) });\n // A recorded index can point INSIDE a rebuild block, one past its\n // session-scoped `PRAGMA foreign_keys=OFF` — resuming there would replay the\n // rebuild (DROP TABLE included) with foreign keys ON. Rewind to the block.\n const start = selfManaged\n ? selfManagedResumeStart({ sql: migration.sql, start: params.start })\n : params.start;\n\n await assertApplicationModuleState({ executor, origins: params.moduleOrigins, probe: params.probe });\n if (insertRecord) {\n if (migration.desiredState !== undefined) {\n await assertForwardStart({ executor, dialect, migration, ...(params.probe === undefined ? {} : { probe: params.probe }) });\n if (migration.sql.length === 0) assertMigrationState({ report: await verifyMigrationTransition({ executor, from: migration.desiredState.from, to: migration.desiredState.to, removals: migration.desiredState.unmanagedRemovals, dialect, ...(params.probe === undefined ? {} : { probe: params.probe }) }) });\n }\n if (migration.moduleOrigin !== undefined) await insertModuleJournal({ executor, dialect, migration, index: 0, complete: false });\n else await executor({\n text: `INSERT INTO ${table} (${q(dialect, \"name\")}, ${q(dialect, \"checksum\")}, ${q(dialect, \"statement_index\")}) VALUES (${ph(dialect, 1)}, ${ph(dialect, 2)}, 0)`,\n values: [migration.name, checksumOf({ migration })],\n });\n }\n\n const checkpoint = async (completed: number): Promise<void> => {\n await executor({\n text: `UPDATE ${table} SET ${q(dialect, \"statement_index\")} = ${ph(dialect, 1)}, ${q(dialect, \"error\")} = NULL WHERE ${q(dialect, \"name\")} = ${ph(dialect, 2)}`,\n values: [completed, migration.name],\n });\n };\n\n // RESUME: establish what happened to the statement we stopped on, before\n // touching the database again. This is the whole point of the declared\n // regime — a statement whose effect cannot be established is never replayed.\n let cursor = start;\n if (marks && !insertRecord && start < migration.sql.length) {\n // Declared operations exist on postgres only — they are the one way a\n // statement's outcome can be READ back instead of guessed.\n const operation = declared ? operationFor({ ...(execution === undefined ? {} : { execution }), statement: start }) : undefined;\n if (operation !== undefined) {\n const state = await establishOperationState({ executor, dialect, operation });\n if (state === \"satisfied\") {\n if (start + 1 === migration.sql.length && migration.desiredState !== undefined) assertMigrationState({ report: await verifyMigrationTransition({ executor, dialect, from: migration.desiredState.from, to: migration.desiredState.to, removals: migration.desiredState.unmanagedRemovals, ...(params.probe === undefined ? {} : { probe: params.probe }) }) });\n if (start + 1 === migration.sql.length) await assertApplicationModuleState({ executor, origins: params.moduleOrigins, probe: params.probe });\n await checkpoint(start + 1);\n cursor = start + 1;\n }\n } else if (inflightStatement({ ...(params.storedError === undefined ? {} : { error: params.storedError }) }) === start) {\n throw uncertainStatement({ migration: migration.name, statements: migration.sql, index: start, dialect, direction: \"up\" });\n }\n }\n\n for (let index = cursor; index < migration.sql.length; index += 1) {\n // sqlite: hold the statement and its checkpoint in ONE transaction, so the\n // gap never opens. Either both landed or neither did.\n const atomic = selfManaged && canCheckpointAtomically({ sql: migration.sql, index });\n const commitsBlock = selfManaged && isSelfManagedCommit({ statement: migration.sql[index] as string });\n // Record the intent to run BEFORE running it, so a crash in the gap\n // between the statement committing and its checkpoint is distinguishable\n // from a statement that never started.\n if (marks) {\n await executor({\n text: `UPDATE ${table} SET ${q(dialect, \"error\")} = ${ph(dialect, 1)} WHERE ${q(dialect, \"name\")} = ${ph(dialect, 2)}`,\n values: [`${INFLIGHT_PREFIX}${index}`, migration.name],\n });\n }\n if (atomic) await executor({ text: \"BEGIN\" });\n try {\n // Same atomic commit checkpoint as the down direction above.\n if (commitsBlock) {\n if (migration.desiredState !== undefined && migration.sql.slice(index + 1).every((statement) => /^\\s*PRAGMA\\s+foreign_keys\\s*=\\s*ON\\s*;?\\s*$/i.test(statement))) assertMigrationState({ report: await verifySqliteTransitionBeforeRestore({ executor, dialect, from: migration.desiredState.from, to: migration.desiredState.to, removals: migration.desiredState.unmanagedRemovals, ...(params.probe === undefined ? {} : { probe: params.probe }) }) });\n await assertApplicationModuleState({ executor, origins: params.moduleOrigins, probe: params.probe, sqliteRestorePending: true });\n await checkpoint(index + 1);\n }\n await executeStatement({ executor, statement: migration.sql[index] as string, dialect });\n if (index === migration.sql.length - 1 && migration.desiredState !== undefined) assertMigrationState({ report: await verifyMigrationTransition({ executor, from: migration.desiredState.from, to: migration.desiredState.to, removals: migration.desiredState.unmanagedRemovals, dialect, ...(params.probe === undefined ? {} : { probe: params.probe }) }) });\n if (index === migration.sql.length - 1) await assertApplicationModuleState({ executor, origins: params.moduleOrigins, probe: params.probe });\n if (atomic) {\n await checkpoint(index + 1);\n await executor({ text: \"COMMIT\" });\n }\n } catch (error) {\n // A self-managed script fails INSIDE its own BEGIN, with foreign_keys\n // OFF. Close that transaction FIRST: otherwise the error UPDATE below\n // joins it and is rolled back with it, and the session keeps running\n // inside a stale transaction (every later statement on this connection).\n if (selfManaged) await cleanupSelfManagedFailure({ executor });\n // Record the failure (best-effort) — statement_index already points at\n // the failed statement, so a re-run resumes exactly here.\n try {\n await executor({\n text: `UPDATE ${table} SET ${q(dialect, \"error\")} = ${ph(dialect, 1)} WHERE ${q(dialect, \"name\")} = ${ph(dialect, 2)}`,\n values: [marks ? `${INFLIGHT_PREFIX}${index}` : error instanceof Error ? error.message : String(error), migration.name],\n });\n } catch {\n // Progress row update is best-effort; the original failure matters more.\n }\n const sqlState = sqlStateOf(error);\n const timeout = sqlState === \"55P03\" ? \"lock-timeout\" : sqlState === \"57014\" ? \"statement-timeout\" : undefined;\n throw new VibeError({\n code: \"VIBE_MIGRATION\",\n message: timeout === \"lock-timeout\"\n ? `migration \"${migration.name}\" gave up waiting for a lock at statement ${index + 1} of ${migration.sql.length} (lock_timeout ${String(execution?.lockTimeoutMs ?? 0)}ms, SQLSTATE 55P03). Another session holds a conflicting lock; inspect the declared operation before retrying.`\n : timeout === \"statement-timeout\"\n ? `migration \"${migration.name}\" exceeded its statement_timeout at statement ${index + 1} of ${migration.sql.length} (${String(execution?.statementTimeoutMs ?? 0)}ms, SQLSTATE 57014). Inspect the declared operation before retrying.`\n : `migration \"${migration.name}\" failed at statement ${index + 1} of ${migration.sql.length}: ${error instanceof Error ? error.message : String(error)}. ${marks ? \"The statement outcome is unknown; inspect its effects before resolving or retrying.\" : \"Progress is recorded; re-running applyMigrations resumes from this statement.\"}`,\n meta: { migration: migration.name, statementIndex: index, ...(marks ? { outcome: \"unknown\" } : {}), ...(timeout === undefined ? {} : { reason: timeout, sqlState }) },\n cause: error,\n });\n }\n if (!atomic && !commitsBlock) await checkpoint(index + 1);\n }\n if (migration.moduleOrigin !== undefined) {\n assertMigrationState({ report: await verifyMigrationState({ executor, dialect, expected: migration.desiredState!.to }) });\n await completeModuleJournal({ executor, dialect, migration });\n }\n}\n\n// ─── Advisory locks ───────────────────────────────────────────────\n\nasync function acquireLock(params: { executor: SqlExecutor; dialect: Dialect }): Promise<void> {\n const { executor, dialect } = params;\n if (dialect === \"postgres\") {\n await executor({ text: `SELECT pg_advisory_lock(${PG_ADVISORY_LOCK_KEY})` });\n return;\n }\n if (dialect === \"mysql\") {\n // values: [] forces the row-returning executor path (adapter contract:\n // value-less text may run as a row-less batch statement).\n const rows = await executor({\n text: `SELECT GET_LOCK('${MYSQL_LOCK_NAME}', ${MYSQL_LOCK_TIMEOUT_SECONDS}) AS \\`vibe_lock\\``,\n values: [],\n });\n const acquired = Number(rows[0]?.vibe_lock) === 1;\n if (!acquired) {\n throw new VibeError({\n code: \"VIBE_MIGRATION\",\n message: `could not acquire the migration lock ('${MYSQL_LOCK_NAME}') within ${MYSQL_LOCK_TIMEOUT_SECONDS}s — another migration run is in progress`,\n meta: { lock: MYSQL_LOCK_NAME },\n });\n }\n }\n // SQLite has no advisory lock here. Individual BEGINs do not protect a\n // whole self-managed run; callers must provide cross-connection ownership.\n}\n\nasync function releaseLock(params: { executor: SqlExecutor; dialect: Dialect }): Promise<void> {\n const { executor, dialect } = params;\n if (dialect === \"postgres\") {\n await executor({ text: `SELECT pg_advisory_unlock(${PG_ADVISORY_LOCK_KEY})` });\n } else if (dialect === \"mysql\") {\n await executor({ text: `SELECT RELEASE_LOCK('${MYSQL_LOCK_NAME}')` });\n }\n}\n\n// ─── Internals ────────────────────────────────────────────────────\n\ntype RecordedRow = JournalRow;\n\n// ─── Declared execution semantics ────────────────────────────\n\n/**\n * Sentinel written into the EXISTING nullable `error` column before a\n * statement of a declared-nontransactional migration runs, and cleared by that\n * statement's success checkpoint.\n *\n * Reusing `error` is deliberate: the column has been in all three dialects'\n * CREATE TABLE since the journal was introduced, so no installed database\n * needs migrating and an older binary reading the row simply sees a string it\n * reports as an error. There is no on-disk format change.\n */\nconst INFLIGHT_PREFIX = \"VIBE_INFLIGHT:\";\n\n/**\n * The statement index an in-flight marker refers to, if the stored text is one.\n *\n * The whole remainder must be digits. A driver error message that merely opens\n * with the sentinel is an ERROR, and reading it as a marker would stop a\n * migration that is safe to resume.\n */\nfunction inflightStatement(params: { error?: string }): number | undefined {\n const error = params.error;\n if (error === undefined || !error.startsWith(INFLIGHT_PREFIX)) return undefined;\n const digits = error.slice(INFLIGHT_PREFIX.length);\n if (!/^\\d+$/.test(digits)) return undefined;\n const index = Number.parseInt(digits, 10);\n return Number.isSafeInteger(index) ? index : undefined;\n}\n\n/**\n * Does this (dialect, script) pair have a window between a statement\n * committing and its journal checkpoint that nothing can close?\n *\n * - **mysql: yes, always.** Every statement auto-commits on its own, DDL\n * unconditionally, and no transaction can hold a statement and its checkpoint\n * together. Nobody has to declare anything for the window to exist.\n * - **postgres: only when the migration declared `transaction: \"none\"`.**\n * Otherwise the migration and its journal row are one transaction.\n * - **sqlite: no.** A self-managed script's statements are covered either by\n * their rebuild block's own transaction or by the per-statement transaction\n * {@link canCheckpointAtomically} authorises, and any other sqlite script\n * runs wholly inside `runTransactional`.\n *\n * Where the answer is yes, an in-flight marker is written before the statement\n * runs and cleared by its checkpoint, so a resume can tell \"this statement was\n * running when we died\" from \"this statement never started\".\n */\nfunction marksInflight(params: { dialect: Dialect; execution?: MigrationExecution }): boolean {\n return params.execution?.transaction === \"none\" || params.dialect === \"mysql\";\n}\n\n/**\n * The refusal a still-present in-flight marker produces: this statement was\n * running when the process died, and nothing in the database says whether it\n * committed.\n *\n * Replaying it is the one thing that must not happen automatically. A DDL\n * replay usually fails loudly, but `CREATE TABLE IF NOT EXISTS` and its\n * siblings do not, and a data statement such as `UPDATE t SET n = n + 1`\n * applies twice in silence. So the runner stops and hands the decision to an\n * operator, who can see the rows and VibeORM cannot.\n */\nfunction uncertainStatement(params: {\n migration: string;\n statements: readonly string[];\n index: number;\n dialect: Dialect;\n direction: \"up\" | \"down\";\n}): VibeError {\n const { migration, statements, index, dialect, direction } = params;\n const subject = direction === \"down\" ? `rollback of \"${migration}\"` : `migration \"${migration}\"`;\n const position = `${direction === \"down\" ? \"down statement\" : \"statement\"} ${index + 1} of ${statements.length}`;\n const why =\n dialect === \"mysql\"\n ? \"MySQL commits every statement on its own, so nothing outside the statement records whether it finished.\"\n : \"That statement declares no operation whose effect recovery can read back from the catalog.\";\n return new VibeError({\n code: \"VIBE_MIGRATION\",\n message:\n `${subject} was interrupted while ${position} was running. ${why} ` +\n \"It may or may not have committed, and replaying it could apply it twice, so VibeORM stops here instead of guessing. \" +\n \"Inspect what that statement did to the database, then follow \\\"Recovering from a stopped migration\\\" in docs/migrations.md: \" +\n `clear the \\`error\\` column of this migration's journal row if the statement did NOT land, set \\`statement_index\\` to ${direction === \"down\" ? -(index + 2) : index + 1} if it DID, ` +\n \"or finish the whole migration by hand and record that with `vibeorm migrate resolve --applied`. \" +\n `The statement was: ${(statements[index] as string).slice(0, 200)}`,\n meta: {\n reason: \"uncertain-statement\",\n outcome: \"unknown\",\n migration,\n statementIndex: index,\n ...(direction === \"down\" ? { direction } : {}),\n },\n });\n}\n\n/**\n * Validate a migration's declared execution block and refuse the combinations\n * no dialect can honour — at apply time, which is the earliest moment the\n * dialect is known.\n *\n * `transaction: \"none\"` is a PostgreSQL concept here. sqlite and mysql have no\n * separate nontransactional regime to opt into: mysql's DDL auto-commits\n * already, and a sqlite script either wraps or manages its own transactions.\n * Silently accepting the flag there would promise a guarantee that is not\n * being made.\n */\nfunction assertExecutable(params: {\n migration: MigrationFile;\n execution?: MigrationExecution;\n sql: readonly string[];\n dialect: Dialect;\n}): void {\n const { migration, execution, dialect } = params;\n assertValidExecution({ ...(execution === undefined ? {} : { execution }), statements: params.sql.length, migration: migration.name });\n if (execution === undefined || isDefaultExecution({ execution })) return;\n if (dialect !== \"postgres\") {\n throw new VibeError({\n code: \"VIBE_UNSUPPORTED_CAPABILITY\",\n message: `migration \"${migration.name}\" declares explicit execution semantics (transaction: \"${execution.transaction}\"), which only the postgres runner implements — ${dialect} has no separate nontransactional regime to opt into`,\n meta: { reason: \"nontransactional-unsupported\", dialect, migration: migration.name, feature: \"nontransactionalMigrations\" },\n });\n }\n}\n\n/** SQLSTATE of a driver error, however deeply the adapter wrapped it. */\nfunction sqlStateOf(error: unknown): string | undefined {\n let current: unknown = error;\n for (let depth = 0; depth < 5 && current !== null && typeof current === \"object\"; depth += 1) {\n const code = (current as { code?: unknown }).code;\n if (typeof code === \"string\" && /^[0-9A-Z]{5}$/.test(code)) return code;\n current = (current as { cause?: unknown }).cause;\n }\n return undefined;\n}\n\n/** Migration-owned limits, applied to the pinned session and restored after. */\nasync function withSessionLimits<T>(params: {\n executor: SqlExecutor;\n dialect: Dialect;\n execution?: MigrationExecution;\n run: () => Promise<T>;\n}): Promise<T> {\n const { executor, dialect, execution } = params;\n const lock = execution?.lockTimeoutMs ?? 0;\n const statement = execution?.statementTimeoutMs ?? 0;\n if (dialect !== \"postgres\" || (lock === 0 && statement === 0)) return params.run();\n\n const sqlDialect = getSqlDialect({ dialect });\n const previous = (await executor({ text: renderMigrationSessionRead({ dialect: sqlDialect }).text, values: [] }))[0];\n if (lock > 0) await executor({ text: renderMigrationSessionSet({ dialect: sqlDialect, setting: \"lock_timeout\", milliseconds: lock }).text });\n if (statement > 0) await executor({ text: renderMigrationSessionSet({ dialect: sqlDialect, setting: \"statement_timeout\", milliseconds: statement }).text });\n try {\n return await params.run();\n } finally {\n // Restore what the session had, not a guessed default: this connection is\n // pinned for the whole migrate operation and outlives one migration.\n for (const [setting, value] of [[\"lock_timeout\", previous?.lockTimeout], [\"statement_timeout\", previous?.statementTimeout]] as const) {\n if (setting === \"lock_timeout\" ? lock === 0 : statement === 0) continue;\n try {\n await executor({ text: renderMigrationSessionRestore({ dialect: sqlDialect, setting, value: typeof value === \"string\" ? value : \"\" }).text });\n } catch {\n // Restoring is best-effort; the original outcome matters more.\n }\n }\n }\n}\n\n/**\n * Which bookkeeping regime a (dialect, script) pair runs in: `true` when\n * progress is recorded PER STATEMENT — mysql (DDL auto-commits) and sqlite\n * scripts that manage their own transactions — `false` when the migration and\n * its record are one atomic unit.\n *\n * ONE predicate on purpose. Spelled per call site it was wrong in three places\n * at once: status called a partial self-managed record \"applied\", rollback's\n * partial-up guard went blind on sqlite, and apply wedged the migration.\n */\nfunction usesStatementBookkeeping(params: {\n dialect: Dialect;\n sql: readonly string[];\n execution?: MigrationExecution;\n}): boolean {\n const { dialect, sql } = params;\n // A migration that declares it runs outside a transaction cannot have an\n // atomic bookkeeping INSERT: there is no transaction for the record to join.\n // This clause fires ONLY on an explicit declaration, so mysql and\n // self-managed sqlite scripts keep exactly the two rules they always had.\n if (params.execution?.transaction === \"none\") return true;\n if (!DIALECT_CAPABILITIES[dialect].transactionalDdl) return true;\n return dialect === \"sqlite\" && usesSelfManagedTransactions({ sql });\n}\n\n/**\n * Is a bookkeeping row a COMPLETE application of its migration?\n *\n * Atomic regime: the row exists at all ⇒ the whole migration ran. Per-statement\n * regime: only once `statement_index` reached the statement count. An empty\n * checksum is a `resolveMigration` repair — complete by definition, content\n * unseen.\n *\n * Backward compatible with rows written before per-statement bookkeeping\n * covered self-managed sqlite scripts: `runTransactional` records\n * `statement_index = sql.length`, so those rows satisfy the last clause and\n * are never falsely resumed.\n */\nfunction isCompleteRecord(params: {\n dialect: Dialect;\n migration: MigrationFile;\n stored: RecordedRow;\n}): boolean {\n const { dialect, migration, stored } = params;\n if (migration.moduleOrigin !== undefined) return moduleRecordComplete({ migration, stored });\n if (stored.checksum === \"\") return true;\n if (!usesStatementBookkeeping({ dialect, sql: migration.sql, ...(migration.execution === undefined ? {} : { execution: migration.execution }) })) return true;\n return stored.statementIndex >= migration.sql.length;\n}\n\nasync function recordedRows(params: {\n executor: SqlExecutor;\n dialect: Dialect;\n modules?: boolean;\n}): Promise<Map<string, RecordedRow>> {\n const { executor, dialect } = params;\n if (params.modules === true) return new Map([...(await readModuleJournal({ executor, dialect }))].map(([name, record]) => [name, record.row]));\n // values: [] forces the row-returning executor path (adapter contract:\n // value-less text may run as a row-less multi-statement batch on sqlite).\n const rows = await readJournalRows({ executor, dialect, query: {\n text: `SELECT ${q(dialect, \"name\")}, ${q(dialect, \"checksum\")}, ${q(dialect, \"statement_index\")}, ${q(dialect, \"error\")} FROM ${q(dialect, MIGRATIONS_TABLE_NAME)} ORDER BY ${q(dialect, \"id\")}`,\n values: [],\n } });\n return rows ?? new Map<string, RecordedRow>();\n}\n\nfunction assertChecksumMatches(params: { migration: MigrationFile; stored: string }): void {\n const { migration, stored } = params;\n if (stored === \"\") return; // resolveMigration record — content unknown by design.\n const actual = checksumOf({ migration });\n if (stored === actual) return;\n throw new VibeError({\n code: \"VIBE_MIGRATION\",\n message: `checksum mismatch for migration \"${migration.name}\" — its SQL changed after it was applied (recorded ${stored.slice(0, 12)}…, current ${actual.slice(0, 12)}…)`,\n meta: { migration: migration.name, recorded: stored, current: actual },\n });\n}\n\nfunction assertResumable(params: { migration: MigrationFile; stored: RecordedRow }): void {\n const { migration, stored } = params;\n const actual = checksumOf({ migration });\n if (stored.checksum === actual) return;\n throw new VibeError({\n code: \"VIBE_MIGRATION\",\n message: `migration \"${migration.name}\" is partially applied (${stored.statementIndex} statement(s) done) and its SQL has CHANGED since — refusing to resume; restore the original SQL or repair with resolveMigration`,\n meta: {\n migration: migration.name,\n statementIndex: stored.statementIndex,\n recorded: stored.checksum,\n current: actual,\n },\n });\n}\n\n/** Classify timeout diagnostics without treating cancellation as proof of no effects. */\nfunction timeoutDiagnostic(params: { error: unknown }): Record<string, unknown> {\n const sqlState = sqlStateOf(params.error);\n const reason = sqlState === \"55P03\" ? \"lock-timeout\" : sqlState === \"57014\" ? \"statement-timeout\" : undefined;\n return reason === undefined ? {} : { reason, sqlState };\n}\n\n/** Duplicate file identities cannot describe a replayable chain. */\nfunction assertDistinctMigrationNames(params: { migrations: readonly MigrationFile[] }): void {\n const names = new Set<string>();\n for (const migration of params.migrations) {\n if (names.has(migration.name)) throw new VibeError({ code: \"VIBE_MIGRATION\", message: `Duplicate migration file identity \"${migration.name}\"`, meta: { reason: \"history-duplicate-file\", migration: migration.name } });\n names.add(migration.name);\n }\n}\n\n/** A complete chain must preserve journal order and append new work only. */\nfunction assertCompleteHistory(params: { migrations: readonly MigrationFile[]; recorded: ReadonlyMap<string, RecordedRow>; dialect: Dialect }): void {\n const byName = new Map(params.migrations.map((migration) => [migration.name, migration]));\n for (const name of params.recorded.keys()) {\n if (!byName.has(name)) throw new VibeError({ code: \"VIBE_MIGRATION\", message: `Recorded migration \"${name}\" has no file in the complete chain`, meta: { reason: \"history-unknown-file\", migration: name } });\n }\n let index = 0;\n for (const [name, stored] of params.recorded) {\n const migration = params.migrations[index]!;\n if (migration?.name !== name) throw new VibeError({ code: \"VIBE_MIGRATION\", message: \"Recorded migration order is not a prefix of the supplied complete chain\", meta: { reason: \"history-order-conflict\", migration: name, expected: migration?.name, position: index } });\n if (stored.statementIndex >= 0 && !isCompleteRecord({ dialect: params.dialect, migration, stored }) && index !== params.recorded.size - 1) throw new VibeError({ code: \"VIBE_MIGRATION\", message: `Partial migration \"${name}\" precedes later recorded work`, meta: { reason: \"history-partial-not-last\", migration: name } });\n index++;\n }\n}\n\n/** Validate all known identities and dirty journal rows before any migration runs. */\nasync function assertApplyHistory(params: {\n executor: SqlExecutor;\n dialect: Dialect;\n migrations: readonly MigrationFile[];\n recorded: ReadonlyMap<string, RecordedRow>;\n}): Promise<void> {\n const { executor, dialect, migrations, recorded } = params;\n const byName = new Map(migrations.map((migration) => [migration.name, migration]));\n for (const [name, stored] of recorded) {\n if (stored.statementIndex < 0) {\n throw new VibeError({ code: \"VIBE_MIGRATION\", message: `Migration \"${name}\" is mid-rollback; finish or resolve it before applying`, meta: { reason: \"history-rolling-back\", migration: name, statementIndex: stored.statementIndex } });\n }\n const migration = byName.get(name);\n if (migration === undefined) {\n if (stored.error !== undefined) throw new VibeError({ code: \"VIBE_MIGRATION\", message: `Migration \"${name}\" has an unresolved journal error but no supplied file`, meta: { reason: \"history-unknown-dirty\", migration: name } });\n continue; // Intentional programmatic subsets remain supported.\n }\n if (isCompleteRecord({ dialect, migration, stored }) && stored.error !== undefined) throw new VibeError({ code: \"VIBE_MIGRATION\", message: `Migration \"${name}\" has an unresolved journal error`, meta: { reason: \"history-dirty\", migration: name } });\n if (isCompleteRecord({ dialect, migration, stored })) assertChecksumMatches({ migration, stored: stored.checksum });\n else assertResumable({ migration, stored });\n }\n for (const migration of migrations) {\n const stored = recorded.get(migration.name);\n if (stored === undefined || isCompleteRecord({ dialect, migration, stored })) continue;\n const start = stored.statementIndex;\n if (dialect === \"sqlite\" && usesSelfManagedTransactions({ sql: migration.sql })) {\n assertSupportedSelfManagedScript({ sql: migration.sql, migration: migration.name, direction: \"up\" });\n assertSelfManagedResumeSafe({ sql: migration.sql, start, migration: migration.name, direction: \"up\" });\n }\n if (!marksInflight({ dialect, execution: migration.execution }) || start >= migration.sql.length) continue;\n const operation = migration.execution?.transaction === \"none\" ? operationFor({ execution: migration.execution, statement: start }) : undefined;\n if (operation !== undefined) await establishOperationState({ executor, dialect, operation });\n else if (inflightStatement({ error: stored.error }) === start) throw uncertainStatement({ migration: migration.name, statements: migration.sql, index: start, dialect, direction: \"up\" });\n }\n}\n\n// ─── Quoting / placeholders ───────────────────────────────────────\n\nfunction q(dialect: Dialect, name: string): string {\n return getSqlDialect({ dialect }).quoteIdent({ name });\n}\n\nfunction ph(dialect: Dialect, index: number): string {\n return getSqlDialect({ dialect }).placeholder({ index });\n}\n",
|
|
37
|
+
"/**\n * Migration runner: generate named migrations from IR diffs, apply them with\n * bookkeeping in `_vibe_migrations`, report status, and repair records.\n *\n * Concurrency: `applyMigrations` and `rollbackMigration` take an advisory lock\n * for the whole run — `pg_advisory_lock(1447645253)` on postgres (\"VIBE\" in\n * ASCII, blocking, released in a finally), `GET_LOCK('vibeorm_migrate', 60)`\n * on mysql (throws VIBE_MIGRATION on timeout). SQLite serializes individual\n * transactions only; callers must exclude concurrent whole-run operations.\n * Locks are session-scoped — the\n * SqlExecutor contract (types.ts) requires one session for the whole\n * operation.\n *\n * Lock ORDER matters: the lock is taken BEFORE `ensureMigrationsTable`, never\n * after. Two concurrent first-time runs against a fresh postgres database\n * would otherwise both issue `CREATE TABLE IF NOT EXISTS _vibe_migrations`,\n * which is a catalog race on postgres (a duplicate-key error on\n * `pg_type_typname_nsp_index`, not a no-op). Repair uses the same lock.\n * Status deliberately stays nonblocking and never creates the journal.\n *\n * Execution strategy per dialect (`DIALECT_CAPABILITIES[dialect]`) AND per\n * script:\n *\n * - transactionalDdl (postgres, sqlite): each migration runs inside\n * BEGIN/COMMIT with its bookkeeping INSERT — atomic.\n * - EXCEPT sqlite scripts containing a table-rebuild block, which manage their\n * own transactions (execute.ts `usesSelfManagedTransactions`) and therefore\n * cannot be wrapped. Those take the SAME per-statement bookkeeping as mysql\n * (below). They are NOT simply \"re-runnable\": a pure rebuild block is\n * effectively idempotent, but any plain statement in the same script\n * auto-commits on its own, so without a recorded statement_index a crash\n * wedged the migration forever (every later run replayed statements that had\n * already run). Resuming into a rebuild block rewinds to that block's\n * `PRAGMA foreign_keys=OFF` (execute.ts `selfManagedResumeStart`): the block\n * is transactional, so nothing of it survived, and the pragma is\n * session-scoped and gone after a crash.\n * - mysql (transactionalDdl: false — DDL auto-commits): the runner records\n * PER-STATEMENT progress instead. The row is inserted up front\n * (statement_index 0), advanced after every statement, and on failure the\n * error lands in the `error` column. Re-running RESUMES from the recorded\n * statement_index — and REFUSES if the migration's checksum changed since\n * the partial application. A row is \"complete\" when its statement_index\n * reaches the statement count (or its checksum is empty — resolveMigration\n * records, which store statement_index 2147483647).\n *\n * `usesStatementBookkeeping` is the ONE predicate deciding which of the two\n * regimes a (dialect, script) pair is in; apply, status and rollback all read\n * it, so they can never disagree about whether a record is complete.\n *\n * Checksums (sha256 over the joined SQL) pin a migration's content:\n * re-applying a renamed-or-edited migration is a VIBE_MIGRATION error, never\n * a silent divergence.\n */\n\nimport { migrationChecksum } from \"./migration-checksum.ts\";\nimport { assertDatabaseNotShadow } from \"./shadow-guard.ts\";\nimport { assertModuleOwnership, assertLiveModuleOwnership, assertApplicationModuleState, moduleNamespace } from \"./module-ownership.ts\";\nimport { assertModuleUpgradeHistory, applicationModuleOrigins } from \"./module-history.ts\";\nimport type { ModuleMigrationOrigin } from \"./module-origin.ts\";\nimport { completeModuleJournal, ensureModuleJournal, insertModuleJournal, moduleRecordComplete, readModuleJournal } from \"./module-journal.ts\";\nimport { VibeError } from \"@vibeorm/schema\";\nimport type { Dialect, SchemaIR, SqlObjectIdentity, VibeExtension } from \"@vibeorm/schema\";\nimport { assertMaterializedModuleMigration } from \"./module-origin.ts\";\nimport { readJournalRows } from \"./journal-read.ts\";\nimport type { JournalRow } from \"./journal-read.ts\";\nimport { MIGRATIONS_TABLE_NAME } from \"./journal-table.ts\";\nimport {\n DIALECT_CAPABILITIES,\n getSqlDialect,\n renderMigrationSessionRead,\n renderMigrationSessionRestore,\n renderMigrationSessionSet,\n} from \"@vibeorm/sql\";\nimport { assertValidExecution, isDefaultExecution, operationFor } from \"./execution.ts\";\nimport type { MigrationExecution } from \"./execution.ts\";\nimport { establishOperationState } from \"./recovery.ts\";\nimport type { RenameIntent } from \"./renames.ts\";\nimport { diffSchemas } from \"./differ.ts\";\nimport { renderSteps } from \"./ddl/render.ts\";\nimport { assertSecurityAcknowledgement, securityChangesOf, withRlsSteps } from \"./ddl/rls.ts\";\nimport { introspectPostgres } from \"./introspect/postgres.ts\";\nimport {\n artifactCreateSql,\n artifactDropSql,\n collectExtensionArtifacts,\n planChangedArtifacts,\n planMissingArtifacts,\n stripExtensionArtifacts,\n} from \"./extensions.ts\";\nimport {\n assertSupportedSelfManagedScript,\n assertSelfManagedResumeSafe,\n isSelfManagedCommit,\n canCheckpointAtomically,\n cleanupSelfManagedFailure,\n executeStatement,\n selfManagedResumeStart,\n usesSelfManagedTransactions,\n} from \"./execute.ts\";\nimport type {\n AppliedResult,\n MigrationFile,\n MigrationHistoryMode,\n MigrationReplayOptions,\n MigrationStatus,\n RecordedMigration,\n RollbackResult,\n SqlExecutor,\n} from \"./types.ts\";\n\n/** Recompute authorization from the trusted declarations; omitted preview arrays cannot bypass it. */\nfunction migrationRlsSecurityChanges(params: { migration: MigrationFile; down: boolean }): string[] {\n const source = params.migration.rls;\n if (source === undefined) return [];\n return securityChangesOf({ steps: withRlsSteps({ from: params.down ? source.to : source.from, to: params.down ? source.from : source.to, steps: [] }) });\n}\n\n/** Classify operation tokens, never words inside identifiers, literals or comments. */\nfunction containsNativeRlsSql(params: { sql: string; dialect: Dialect }): boolean {\n const { sql, dialect } = params;\n const tokens: string[] = [];\n let i = 0;\n while (i < sql.length) {\n const ch = sql[i]!;\n if (/\\s/.test(ch)) { i++; continue; }\n if (sql.startsWith(\"--\", i) || (dialect === \"mysql\" && ch === \"#\")) {\n const end = sql.indexOf(\"\\n\", i);\n i = end === -1 ? sql.length : end + 1;\n continue;\n }\n if (sql.startsWith(\"/*\", i)) {\n let depth = 1;\n i += 2;\n while (i < sql.length && depth > 0) {\n if (sql.startsWith(\"/*\", i)) { depth++; i += 2; }\n else if (sql.startsWith(\"*/\", i)) { depth--; i += 2; }\n else i++;\n }\n continue;\n }\n if (ch === \"'\" || ch === '\"' || ch === \"`\" || (dialect === \"sqlite\" && ch === \"[\")) {\n const endQuote = ch === \"[\" ? \"]\" : ch;\n const backslash = dialect === \"mysql\" || (ch === \"'\" && /(?:^|[^\\w$])[eE]$/.test(sql.slice(0, i)));\n i++;\n while (i < sql.length) {\n if (backslash && sql[i] === \"\\\\\") { i += 2; continue; }\n if (sql[i] === endQuote) {\n if (sql[i + 1] === endQuote) { i += 2; continue; }\n i++;\n break;\n }\n i++;\n }\n tokens.push(\"@\"); // Keep a boundary: CREATE \"ignored\" POLICY is not CREATE POLICY.\n continue;\n }\n if (ch === \"$\") {\n const tag = /^(?:\\$\\$|\\$[A-Za-z_][A-Za-z_0-9]*\\$)/.exec(sql.slice(i))?.[0];\n if (tag !== undefined) {\n const end = sql.indexOf(tag, i + tag.length);\n i = end === -1 ? sql.length : end + tag.length;\n tokens.push(\"@\");\n continue;\n }\n }\n const word = /^[A-Za-z_][A-Za-z_0-9$]*/.exec(sql.slice(i))?.[0];\n tokens.push(word === undefined ? ch : word.toUpperCase());\n i += word?.length ?? 1;\n }\n // A MigrationFile may carry multiple SQL statements in one array entry.\n return tokens.join(\" \").split(/\\s*;\\s*/).some((statement) => {\n const operation = statement.trim();\n return /^(?:CREATE|ALTER|DROP) POLICY\\b/.test(operation)\n || /^COMMENT ON POLICY\\b/.test(operation)\n || (/^ALTER TABLE\\b/.test(operation) && /\\b(?:ENABLE|DISABLE|FORCE) ROW LEVEL SECURITY\\b/.test(operation));\n });\n}\n\n/** SQL-only native-policy files lack the trusted pre/post declarations required for drift checks. */\nfunction assertNativeMigrationMetadata(params: { migration: MigrationFile; sql: readonly string[]; dialect: Dialect }): void {\n const native = params.migration.rls !== undefined || params.sql.some((sql) => containsNativeRlsSql({ sql, dialect: params.dialect }));\n if (!native) return;\n if (!DIALECT_CAPABILITIES[params.dialect].nativeRowLevelSecurity) {\n throw new VibeError({ code: \"VIBE_UNSUPPORTED_CAPABILITY\", message: `Native RLS migrations are unsupported on ${params.dialect}`, meta: { feature: \"nativeRowLevelSecurity\", dialect: params.dialect } });\n }\n if (params.migration.rls === undefined) {\n throw new VibeError({ code: \"VIBE_MIGRATION\", message: \"Native RLS migration files require trusted rls.from/rls.to schema metadata. SQL alone cannot prove policy ownership or drift; regenerate with preserved security metadata.\", meta: { reason: \"rls-migration-metadata-required\", migration: params.migration.name } });\n }\n}\n\n// ─── Bookkeeping table ────────────────────────────────────────────\n\nexport { MIGRATIONS_TABLE_NAME } from \"./journal-table.ts\";\n\n/** Advisory-lock key for postgres — \"VIBE\" as a big-endian ASCII int32. */\nconst PG_ADVISORY_LOCK_KEY = 1447645253;\nconst MYSQL_LOCK_NAME = \"vibeorm_migrate\";\nconst MYSQL_LOCK_TIMEOUT_SECONDS = 60;\n\n/** statement_index recorded by resolveMigration — \"complete, content unseen\". */\nconst RESOLVED_STATEMENT_INDEX = 2147483647;\n\nconst CREATE_TABLE_SQL: Readonly<Record<Dialect, string>> = {\n postgres: `CREATE TABLE IF NOT EXISTS \"${MIGRATIONS_TABLE_NAME}\" (\n \"id\" integer GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,\n \"name\" text NOT NULL UNIQUE,\n \"checksum\" text NOT NULL,\n \"applied_at\" timestamptz(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,\n \"statement_index\" integer NOT NULL DEFAULT 0,\n \"error\" text\n);`,\n sqlite: `CREATE TABLE IF NOT EXISTS \"${MIGRATIONS_TABLE_NAME}\" (\n \"id\" INTEGER PRIMARY KEY AUTOINCREMENT,\n \"name\" TEXT NOT NULL UNIQUE,\n \"checksum\" TEXT NOT NULL,\n \"applied_at\" TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,\n \"statement_index\" INTEGER NOT NULL DEFAULT 0,\n \"error\" TEXT\n);`,\n mysql: `CREATE TABLE IF NOT EXISTS \\`${MIGRATIONS_TABLE_NAME}\\` (\n \\`id\\` int NOT NULL AUTO_INCREMENT,\n \\`name\\` varchar(191) NOT NULL UNIQUE,\n \\`checksum\\` text NOT NULL,\n \\`applied_at\\` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),\n \\`statement_index\\` int NOT NULL DEFAULT 0,\n \\`error\\` text,\n PRIMARY KEY (\\`id\\`)\n);`,\n};\n\n/** Create the bookkeeping table when missing. */\nexport async function ensureMigrationsTable(params: {\n executor: SqlExecutor;\n dialect?: Dialect;\n}): Promise<void> {\n await params.executor({ text: CREATE_TABLE_SQL[params.dialect ?? \"postgres\"] });\n}\n\n/**\n * sha256 hex over the migration's statements — its identity across runs.\n *\n * A NON-default execution block (execution.ts) folds a canonical description\n * of itself in, so changing how a migration executes after it was applied is\n * caught by the same checksum refusal that catches changing its SQL. A default\n * or absent block contributes NOTHING, which is what keeps every migration\n * written before this feature — and every journal row recording one — valid.\n */\nexport { migrationChecksum } from \"./migration-checksum.ts\";\n\n/** The migration's own checksum, execution block included. */\nfunction checksumOf(params: { migration: MigrationFile }): string {\n const { migration } = params;\n return migrationChecksum(migration);\n}\n\nimport { createDesiredState, assertDesiredState } from \"./desired-state.ts\";\nimport { migrationNamespace, verifyMigrationState, verifyMigrationTransition, verifySqliteTransitionBeforeRestore, assertMigrationState, assertProbeMode } from \"./inspect-objects.ts\";\nimport { assertNamedRemovals, assertRemovalAuthorization, preserveMigrationObjects, sqlitePreservedSchema, orderedMigrationObjects, assertRetainedMigrationObjects } from \"./object-ownership.ts\";\nimport type { MigrationDesiredState } from \"./desired-state.ts\";\n\n/** Re-apply may start at the checksum-bound actual down target after an irreversible rollback. */\nasync function assertForwardStart(params: { executor: SqlExecutor; dialect: Dialect; migration: MigrationFile; probe?: \"none\" | \"rollback\" | \"temporary\" }): Promise<void> {\n const state = params.migration.desiredState;\n if (state === undefined) return;\n const report = await verifyMigrationState({ executor: params.executor, dialect: params.dialect, expected: state.from, ...(params.probe === undefined ? {} : { probe: params.probe }) });\n if (report.inSync) return;\n if (state.down !== undefined) {\n const restored = await verifyMigrationState({ executor: params.executor, dialect: params.dialect, expected: state.down, ...(params.probe === undefined ? {} : { probe: params.probe }) });\n if (restored.inSync) return;\n }\n assertMigrationState({ report });\n}\n\n// ─── Generate ─────────────────────────────────────────────────────\n\n/**\n * Diff two IRs and render a named migration for a dialect (postgres if\n * omitted). `destructive` aggregates the steps' flags so callers can gate\n * confirmation before applying.\n */\nexport function generateMigration(params: {\n from: SchemaIR;\n to: SchemaIR;\n name: string;\n /** Rendering dialect; postgres if omitted. */\n dialect?: Dialect;\n /** Configured extension instances — their artifacts land in the migration. */\n extensions?: readonly VibeExtension[];\n /** Explicit physical renames (renames.ts); never inferred from the diff. */\n renames?: readonly RenameIntent[];\n /** Explicit execution semantics for the generated file. */\n execution?: MigrationExecution;\n /** Independent authored baseline; required by live generation on an existing database. */\n desiredState?: MigrationDesiredState;\n}): MigrationFile {\n const { from, to, name } = params;\n const dialect = params.dialect ?? \"postgres\";\n\n const artifacts = collectExtensionArtifacts({\n schema: to,\n dialect,\n extensions: params.extensions ?? [],\n });\n const allArtifacts = [...artifacts.setup, ...artifacts.objects];\n // `from` is authored: every artifact it declared exists after the previous\n // migration, so a changed definition is a rebuild, not a fresh create.\n const rebuilt = planChangedArtifacts({ previous: collectExtensionArtifacts({ schema: from, dialect, extensions: params.extensions ?? [] }), current: artifacts, missing: [] });\n assertRetainedMigrationObjects({ from: from.migrationObjects ?? [], to: to.migrationObjects ?? [] });\n const strippedFrom = preserveMigrationObjects({ from: stripExtensionArtifacts({ schema: from, artifacts: allArtifacts }), to, objects: [...(from.migrationObjects ?? []), ...(to.migrationObjects ?? [])] });\n\n const steps = diffSchemas({ from: strippedFrom, to, dialect, ...(params.renames === undefined ? {} : { renames: params.renames }) });\n const coreSql = renderSteps({ steps, dialect, from: dialect === \"sqlite\" ? from : strippedFrom, to: dialect === \"sqlite\" ? sqlitePreservedSchema({ from, to, objects: [...(from.migrationObjects ?? []), ...(to.migrationObjects ?? [])] }) : to });\n const missing = planMissingArtifacts({ introspected: from, artifacts: allArtifacts });\n const sql = [\n ...artifactCreateSql({\n artifacts: missing.filter((artifact) => artifact.owns.kind === \"postgresExtension\"),\n }),\n ...coreSql,\n ...artifactDropSql({ artifacts: rebuilt }),\n ...artifactCreateSql({\n artifacts: missing.filter((artifact) => artifact.owns.kind !== \"postgresExtension\"),\n }),\n ...orderedMigrationObjects({ objects: to.migrationObjects ?? [] }).flatMap((object) => {\n if (object.dialect !== dialect) throw new VibeError({ code: \"VIBE_UNSUPPORTED_CAPABILITY\", message: `Migration object ${object.id} requires ${object.dialect}` });\n const previous = (params.desiredState?.from.schema.migrationObjects ?? from.migrationObjects)?.find((entry) => entry.id === object.id);\n if (previous === undefined) return [...object.create];\n if (JSON.stringify(previous) !== JSON.stringify(object)) throw new VibeError({ code: \"VIBE_MIGRATION\", message: `Migration-owned object ${object.id} changed; supply a reviewed forward SQL migration`, meta: { reason: \"migration-object-replacement-required\", shadowReusable: true, id: object.id } });\n return [];\n }),\n ];\n return {\n name,\n sql,\n destructive: steps.some((step) => step.destructive),\n ...(securityChangesOf({ steps }).length === 0 ? {} : { securityChanges: securityChangesOf({ steps }) }),\n ...(from.rls === undefined && to.rls === undefined ? {} : { rls: { from, to } }),\n ...(params.execution === undefined ? {} : { execution: params.execution }),\n desiredState: params.desiredState ?? { version: 1, dialect, from: createDesiredState({ schema: from, dialect }), to: createDesiredState({ schema: to, dialect }) },\n };\n}\n\n// ─── Apply ────────────────────────────────────────────────────────\n\n/** Run one operation on a dedicated session under the existing migration lock. */\nexport async function withMigrationLock<T>(params: {\n executor: SqlExecutor;\n dialect: Dialect;\n run: (executor: SqlExecutor) => Promise<T>;\n}): Promise<T> {\n const runLocked = async (executor: SqlExecutor): Promise<T> => {\n await acquireLock({ executor, dialect: params.dialect });\n return Promise.resolve().then(async () => {\n await assertDatabaseNotShadow({ executor, dialect: params.dialect });\n return params.run(executor);\n }).then(\n async (value) => { await releaseLock({ executor, dialect: params.dialect }); return value; },\n (cause: unknown) => releaseLock({ executor, dialect: params.dialect }).then(\n () => { throw cause; },\n (cleanupCause: unknown) => {\n // The operation failure stays the primary outcome: a backend that dies\n // mid-migration fails BOTH the body and the unlock, and the operator\n // must act on the body's uncertainty verdict, not on lock cleanup.\n // The unlock failure is retained as evidence, never as the headline.\n if (cause instanceof VibeError) throw new VibeError({ code: cause.code, message: cause.message, meta: { ...cause.meta, cleanupCause }, cause });\n throw cause;\n },\n ),\n );\n };\n // Reserve once: the callback already receives the pinned executor, even if it\n // exposes withSession itself. Never recursively reserve through that handle.\n return params.executor.withSession === undefined ? runLocked(params.executor) : params.executor.withSession({ run: runLocked });\n}\n\n/** Validate replay declarations and approvals without reading or writing a database. */\nexport function validateMigrationReplay(params: MigrationReplayOptions): void {\n const dialect = params.dialect ?? \"postgres\";\n assertProbeMode({ dialect, probe: params.probe });\n assertDistinctMigrationNames({ migrations: params.migrations });\n for (const migration of params.migrations) {\n assertMigrationMetadata({ migration, dialect });\n if (dialect === \"sqlite\" && usesSelfManagedTransactions({ sql: migration.sql })) assertSupportedSelfManagedScript({ sql: migration.sql, migration: migration.name, direction: \"up\" });\n assertNamedRemovals({ removals: migration.desiredState?.unmanagedRemovals ?? [], approved: params.removeUnmanaged, acceptIntegrityLoss: params.acceptIntegrityLoss });\n if (migration.desiredState !== undefined) {\n const state = migration.desiredState;\n assertRemovalAuthorization({ steps: diffSchemas({ from: state.from.schema, to: state.to.schema, dialect }), previous: state.from, dialect, namespace: dialect === \"sqlite\" ? \"main\" : \"public\", ...(params.acceptIntegrityLoss === undefined ? {} : { acceptIntegrityLoss: params.acceptIntegrityLoss }) });\n }\n assertSecurityAcknowledgement({ securityChanges: [...(migration.securityChanges ?? []), ...migrationRlsSecurityChanges({ migration, down: false })], ...(params.acceptSecurityChanges === undefined ? {} : { acceptSecurityChanges: params.acceptSecurityChanges }) });\n }\n}\n\nfunction assertMigrationMetadata(params: { migration: MigrationFile; dialect: Dialect }): void {\n const { migration, dialect } = params;\n if (migration.moduleOrigin !== undefined) {\n assertMaterializedModuleMigration({ migration });\n assertModuleOwnership({ origin: migration.moduleOrigin, desiredState: migration.desiredState });\n }\n if (migration.desiredStatePending === true) throw new VibeError({ code: \"VIBE_MIGRATION\", message: `Migration ${migration.name} has unfinalized desired state; finalize its reviewed before/after declarations before applying`, meta: { reason: \"desired-state-unfinalized\", migration: migration.name } });\n if (migration.desiredState !== undefined) {\n assertDesiredState({ value: migration.desiredState, migration: migration.name });\n if (migration.desiredState.dialect !== dialect) throw new VibeError({ code: \"VIBE_MIGRATION\", message: \"Migration desired-state dialect mismatch\", meta: { reason: \"desired-state-dialect-mismatch\", migration: migration.name } });\n }\n assertNativeMigrationMetadata({ migration, sql: migration.sql, dialect });\n assertExecutable({ migration, execution: migration.execution, sql: migration.sql, dialect });\n}\n\n/**\n * Apply under the migration lock after preflight, preserving recorded progress.\n * Complete mode requires a full ordered chain; subset mode remains the default.\n * Empty-checksum resolve records deliberately skip content verification.\n */\nexport async function applyMigrations(params: {\n executor: SqlExecutor;\n migrations: readonly MigrationFile[];\n /** Complete requires the recorded journal to be a prefix of this ordered chain. */\n history?: MigrationHistoryMode;\n acceptSecurityChanges?: boolean;\n acceptIntegrityLoss?: boolean;\n removeUnmanaged?: readonly SqlObjectIdentity[];\n /** Explicit permission for rollback-only PostgreSQL CHECK normalization probes. */\n probe?: \"none\" | \"rollback\" | \"temporary\";\n /** Execution dialect; postgres if omitted. */\n dialect?: Dialect;\n}): Promise<AppliedResult> {\n const { executor, migrations } = params;\n const dialect = params.dialect ?? \"postgres\";\n if (params.history !== undefined && params.history !== \"complete\" && params.history !== \"subset\") throw new VibeError({ code: \"VIBE_MIGRATION\", message: \"Unknown migration history validation mode\", meta: { reason: \"history-mode-invalid\" } });\n if (params.history === \"complete\") assertDistinctMigrationNames({ migrations });\n for (const migration of migrations) assertMigrationMetadata({ migration, dialect });\n // Pin the session and acquire the lock before inspecting or creating journals.\n return withMigrationLock({ executor, dialect, run: async (executor) => {\n let moduleRecords = await readModuleJournal({ executor, dialect });\n const recorded = new Map([...moduleRecords].map(([name, record]) => [name, record.row]));\n if (migrations.some((migration) => migration.moduleOrigin !== undefined) || [...moduleRecords.values()].some((record) => record.entry !== undefined)) {\n assertModuleUpgradeHistory({ migrations, records: moduleRecords });\n const namespace = await migrationNamespace({ executor, dialect });\n if (migrations.some((migration) => migration.moduleOrigin !== undefined && moduleNamespace({ origin: migration.moduleOrigin }) !== namespace)) throw new VibeError({ code: \"VIBE_MIGRATION\", message: \"Module placement differs from the active database namespace\", meta: { reason: \"module-placement-mismatch\" } });\n }\n if (params.history === \"complete\") assertCompleteHistory({ migrations, recorded, dialect });\n await assertApplyHistory({ executor, dialect, migrations, recorded });\n const pending = migrations.filter((migration) => {\n const stored = recorded.get(migration.name);\n return stored === undefined || !isCompleteRecord({ dialect, migration, stored });\n });\n validateMigrationReplay({ ...params, migrations: pending, dialect });\n await ensureMigrationsTable({ executor, dialect });\n if (migrations.some((migration) => migration.moduleOrigin !== undefined)) await ensureModuleJournal({ executor, dialect });\n\n const applied: string[] = [];\n const skipped: string[] = [];\n\n for (const migration of migrations) {\n const stored = recorded.get(migration.name);\n if (migration.moduleOrigin !== undefined && (stored === undefined || !isCompleteRecord({ dialect, migration, stored }))) await assertLiveModuleOwnership({ executor, origin: migration.moduleOrigin, resume: stored !== undefined });\n if (stored !== undefined) {\n // Negative statement_index = a mysql rollback started but did not\n // finish (see rollbackMigration). Applying over it would corrupt both\n // directions — finish or repair first.\n if (stored.statementIndex < 0) {\n throw new VibeError({\n code: \"VIBE_MIGRATION\",\n message: `migration \"${migration.name}\" is mid-rollback (${-stored.statementIndex - 1} down statement(s) done) — finish it with \\`migrate down\\` or repair with resolveMigration before applying`,\n meta: { migration: migration.name, statementIndex: stored.statementIndex },\n });\n }\n if (isCompleteRecord({ dialect, migration, stored })) {\n assertChecksumMatches({ migration, stored: stored.checksum });\n skipped.push(migration.name);\n continue;\n }\n // Partial row (mysql, a self-managed sqlite script, or a declared\n // nontransactional migration) → resume, but only for unchanged content.\n assertResumable({ migration, stored });\n await withSessionLimits({\n executor,\n dialect,\n ...(migration.execution === undefined ? {} : { execution: migration.execution }),\n run: () => runNonTransactional({\n executor,\n dialect,\n migration,\n start: stored.statementIndex,\n moduleOrigins: applicationModuleOrigins({ migration, records: moduleRecords }),\n ...(params.probe === undefined ? {} : { probe: params.probe }),\n insertRecord: false,\n ...(stored.error === undefined ? {} : { storedError: stored.error }),\n }),\n });\n if (migration.moduleOrigin !== undefined) moduleRecords = await readModuleJournal({ executor, dialect });\n applied.push(migration.name);\n continue;\n }\n\n if (usesStatementBookkeeping({ dialect, sql: migration.sql, ...(migration.execution === undefined ? {} : { execution: migration.execution }) })) {\n await withSessionLimits({\n executor,\n dialect,\n ...(migration.execution === undefined ? {} : { execution: migration.execution }),\n run: () => runNonTransactional({ executor, dialect, migration, moduleOrigins: applicationModuleOrigins({ migration, records: moduleRecords }), start: 0, insertRecord: true, ...(params.probe === undefined ? {} : { probe: params.probe }) }),\n });\n } else {\n await runTransactional({ executor, dialect, migration, moduleOrigins: applicationModuleOrigins({ migration, records: moduleRecords }), ...(params.probe === undefined ? {} : { probe: params.probe }) });\n }\n if (migration.moduleOrigin !== undefined) moduleRecords = await readModuleJournal({ executor, dialect });\n applied.push(migration.name);\n }\n\n // Verify only the final deployed declaration, never intermediate historical targets.\n const final = migrations.at(-1);\n if (final?.desiredState !== undefined) {\n if (params.probe === \"rollback\") await executor({ text: \"BEGIN\" });\n try {\n assertMigrationState({ report: await verifyMigrationTransition({ executor, dialect, from: final.desiredState.from, to: final.desiredState.to, removals: final.desiredState.unmanagedRemovals, ...(params.probe === undefined ? {} : { probe: params.probe }) }) });\n } finally {\n if (params.probe === \"rollback\") await executor({ text: \"ROLLBACK\" });\n }\n }\n return { applied, skipped };\n } });\n}\n\n// ─── Status ───────────────────────────────────────────────────────\n\n/** Compare known migrations against the bookkeeping table. */\nexport async function migrationStatus(params: {\n executor: SqlExecutor;\n migrations: readonly MigrationFile[];\n /** Bookkeeping dialect; postgres if omitted. */\n dialect?: Dialect;\n /** Trusted current deployment; policy state is verified independently of migration records. */\n schema?: SchemaIR;\n}): Promise<MigrationStatus> {\n const { executor, migrations } = params;\n const dialect = params.dialect ?? \"postgres\";\n // No lock or journal creation: status stays nonblocking and read-only.\n const recorded = await recordedRows({ executor, dialect, modules: migrations.some((migration) => migration.moduleOrigin !== undefined) });\n\n const applied: string[] = [];\n const pending: string[] = [];\n const mismatched: string[] = [];\n const rollingBack: string[] = [];\n const known = new Set(migrations.map((migration) => migration.name));\n const unknownFiles: string[] = [];\n for (const [name, stored] of recorded) {\n if (!known.has(name)) {\n unknownFiles.push(name);\n if (stored.statementIndex < 0) rollingBack.push(name);\n }\n }\n\n for (const migration of migrations) {\n const stored = recorded.get(migration.name);\n if (stored === undefined) {\n pending.push(migration.name);\n continue;\n }\n if (stored.statementIndex < 0) {\n rollingBack.push(migration.name);\n continue;\n }\n if (stored.checksum === \"\" && stored.error === undefined) {\n applied.push(migration.name);\n continue;\n }\n if (stored.checksum !== \"\" && stored.checksum !== checksumOf({ migration })) {\n mismatched.push(migration.name);\n continue;\n }\n // A partial row re-applies (resumes) — report it as pending. The SAME\n // predicate apply uses: reporting a partial self-managed sqlite record as\n // \"applied\" while apply would resume it is a lie about the database.\n if (isCompleteRecord({ dialect, migration, stored }) && stored.error === undefined) applied.push(migration.name);\n else pending.push(migration.name);\n }\n\n if (dialect === \"postgres\") {\n const expected = params.schema ?? [...migrations].reverse().find((migration) => applied.includes(migration.name) && migration.rls !== undefined)?.rls?.to;\n await introspectPostgres({ executor, ...(expected === undefined ? {} : { rlsSchema: expected }), requireInstalledRls: true });\n }\n return { applied, pending, mismatched, rollingBack, ...(unknownFiles.length === 0 ? {} : { unknownFiles }) };\n}\n\n/**\n * The bookkeeping journal itself, in the order rows were written — i.e. the\n * order migrations were actually applied, which is what a rollback must walk\n * backwards. Every row is returned with its checksum, cursor and classification;\n * mismatched, partial and fileless rows still occupy their position in history.\n *\n * Takes no lock, exactly like `migrationStatus`.\n */\nexport async function recordedMigrations(params: {\n executor: SqlExecutor;\n /** Known migration files — classification needs their SQL. */\n migrations: readonly MigrationFile[];\n /** Bookkeeping dialect; postgres if omitted. */\n dialect?: Dialect;\n}): Promise<RecordedMigration[]> {\n const { executor, migrations } = params;\n const dialect = params.dialect ?? \"postgres\";\n const recorded = await recordedRows({ executor, dialect, modules: migrations.some((migration) => migration.moduleOrigin !== undefined) });\n return classifyJournal({ dialect, migrations, recorded });\n}\n\n/** Shared journal classification; history imports this, never the reverse. */\nexport function classifyJournal(params: { dialect: Dialect; migrations: readonly MigrationFile[]; recorded: ReadonlyMap<string, JournalRow> }): RecordedMigration[] {\n const { dialect, migrations, recorded } = params;\n const byName = new Map(migrations.map((migration) => [migration.name, migration]));\n\n const journal: RecordedMigration[] = [];\n for (const [name, stored] of recorded) {\n const migration = byName.get(name);\n journal.push({\n name,\n checksum: stored.checksum,\n statementIndex: stored.statementIndex,\n state:\n migration === undefined\n ? \"unknown-file\"\n : stored.checksum !== \"\" && stored.checksum !== checksumOf({ migration })\n ? \"mismatched\"\n : stored.statementIndex < 0\n ? \"rolling-back\"\n : isCompleteRecord({ dialect, migration, stored }) && stored.error === undefined\n ? \"applied\"\n : \"partial\",\n });\n }\n return journal;\n}\n\n// ─── Resolve (repair) ─────────────────────────────────────────────\n\n/**\n * Repair the bookkeeping table without running SQL: mark a migration as\n * `\"applied\"` (upsert its record; pass `checksum` to also pin its content —\n * omitted, the record stores an empty checksum and later runs skip\n * verification for it) or `\"rolled-back\"` (delete its record).\n */\nexport async function resolveMigration(params: {\n executor: SqlExecutor;\n name: string;\n as: \"applied\" | \"rolled-back\";\n checksum?: string;\n /** Bookkeeping dialect; postgres if omitted. */\n dialect?: Dialect;\n}): Promise<void> {\n const dialect = params.dialect ?? \"postgres\";\n await withMigrationLock({ executor: params.executor, dialect, run: (executor) => repairMigration({ ...params, executor, dialect }) });\n}\n\nasync function repairMigration(params: {\n executor: SqlExecutor;\n name: string;\n as: \"applied\" | \"rolled-back\";\n checksum?: string;\n dialect: Dialect;\n}): Promise<void> {\n const { executor, name, dialect } = params;\n const moduleRecord = (await readModuleJournal({ executor, dialect })).get(name);\n if (moduleRecord?.entry !== undefined) throw new VibeError({ code: \"VIBE_MIGRATION\", message: \"Module history cannot be marked applied or deleted without verified module recovery\", meta: { reason: \"module-resolution-required\", moduleId: moduleRecord.entry.migration.moduleOrigin!.moduleId } });\n await ensureMigrationsTable({ executor, dialect });\n\n if (params.as === \"applied\") {\n const insert = `INSERT INTO ${q(dialect, MIGRATIONS_TABLE_NAME)} (${q(dialect, \"name\")}, ${q(dialect, \"checksum\")}, ${q(dialect, \"statement_index\")}) VALUES (${ph(dialect, 1)}, ${ph(dialect, 2)}, ${RESOLVED_STATEMENT_INDEX})`;\n // `error` is cleared on every dialect. That column also carries the\n // in-flight marker, and a repaired record still reading \"VIBE_INFLIGHT:2\"\n // would show a migration recorded as applied as though it were stuck\n // mid-statement.\n const upsert =\n dialect === \"mysql\"\n ? `${insert} ON DUPLICATE KEY UPDATE \\`checksum\\` = VALUES(\\`checksum\\`), \\`statement_index\\` = VALUES(\\`statement_index\\`), \\`error\\` = NULL`\n : `${insert} ON CONFLICT (\"name\") DO UPDATE SET \"checksum\" = EXCLUDED.\"checksum\", \"statement_index\" = EXCLUDED.\"statement_index\", \"error\" = NULL`;\n await executor({ text: upsert, values: [name, params.checksum ?? \"\"] });\n return;\n }\n await executor({\n text: `DELETE FROM ${q(dialect, MIGRATIONS_TABLE_NAME)} WHERE ${q(dialect, \"name\")} = ${ph(dialect, 1)}`,\n values: [name],\n });\n}\n\n// ─── Rollback ─────────────────────────────────────────────────────\n\n/**\n * Roll back ONE applied migration by executing its `downSql` and deleting its\n * bookkeeping row, under the same advisory lock as `applyMigrations`.\n *\n * Guards, in order: the migration must carry `downSql` (older migrations\n * predate down-migration support), must be recorded as applied, and — when\n * the record pins a checksum — its up SQL must still match (rolling back with\n * drifted files would run a down that no longer mirrors what was applied).\n *\n * Dialect behavior mirrors apply exactly (same `usesStatementBookkeeping`\n * predicate, read over the DOWN script): postgres/sqlite run the down inside\n * BEGIN/COMMIT with the bookkeeping DELETE (atomic). mysql DDL auto-commits,\n * and a sqlite down containing a table-rebuild block cannot be wrapped, so\n * both record progress per-statement in the existing `statement_index`\n * column, NEGATIVE to mark the rollback direction: after k down statements,\n * the row stores -(k+1). A failed rollback resumes from the recorded\n * statement on the next call; `applyMigrations` refuses a mid-rollback record\n * (that check reads the sign only, so it holds for every dialect). A\n * partially APPLIED migration cannot be rolled back — its down mirrors the\n * full up; finish applying (apply resumes) or repair with `resolveMigration`.\n */\ntype RollbackOptions = {\n executor: SqlExecutor;\n acceptSecurityChanges?: boolean;\n acceptIntegrityLoss?: boolean;\n probe?: \"none\" | \"rollback\" | \"temporary\";\n dialect?: Dialect;\n};\n\n/** Reverse one file only if it is still newest when the lock is acquired. */\nexport async function rollbackMigration(params: RollbackOptions & { migration: MigrationFile }): Promise<void> {\n const { executor, migration } = params;\n const dialect = params.dialect ?? \"postgres\";\n const downSql = validateRollbackFile({ ...params, dialect });\n await withMigrationLock({ executor, dialect, run: async (executor) => {\n const recorded = await recordedRows({ executor, dialect, modules: true });\n const stored = assertRollbackRecord({ migration, stored: recorded.get(migration.name), dialect });\n const newest = [...recorded.keys()].at(-1);\n if (newest !== migration.name) throw new VibeError({ code: \"VIBE_MIGRATION\", message: `Migration \"${migration.name}\" is not the newest recorded migration; select rollback again`, meta: { reason: \"rollback-not-latest\", migration: migration.name, newest } });\n await validateRollbackRecovery({ executor, migration, downSql, stored, dialect });\n await executeRollback({ ...params, executor, dialect, downSql, stored });\n } });\n}\n\n/**\n * Select from the current journal under one lock. With to, retain that applied\n * migration and reverse every newer row; without it, reverse only the newest.\n * All selected declarations/approvals/progress are checked before any reversal.\n * A later SQL failure can still leave a successfully reversed prefix on disk.\n * SQLite cross-connection ownership remains the caller's responsibility.\n */\nexport async function rollbackMigrations(params: RollbackOptions & {\n migrations: readonly MigrationFile[];\n to?: string;\n}): Promise<RollbackResult> {\n const { executor, migrations } = params;\n const dialect = params.dialect ?? \"postgres\";\n assertDistinctMigrationNames({ migrations });\n return withMigrationLock({ executor, dialect, run: async (executor): Promise<RollbackResult> => {\n const recorded = await recordedRows({ executor, dialect, modules: true });\n const journal = classifyJournal({ migrations, recorded, dialect });\n const byName = new Map(migrations.map((migration) => [migration.name, migration]));\n let start = Math.max(0, journal.length - 1);\n if (params.to !== undefined) {\n const target = journal.findIndex((row) => row.name === params.to);\n const row = journal[target];\n if (row?.state !== \"applied\") throw new VibeError({ code: \"VIBE_MIGRATION\", message: `Rollback target \"${params.to}\" is not a known applied migration`, meta: { reason: \"rollback-target-invalid\", to: params.to, state: row?.state } });\n assertMigrationMetadata({ migration: byName.get(row.name)!, dialect });\n start = target + 1;\n }\n const plan: { migration: MigrationFile; downSql: readonly string[]; stored: RecordedRow }[] = [];\n for (const row of journal.slice(start).reverse()) {\n const migration = byName.get(row.name);\n if (migration === undefined) throw new VibeError({ code: \"VIBE_MIGRATION\", message: `Cannot roll back \"${row.name}\" without its migration file`, meta: { reason: \"rollback-file-missing\", migration: row.name } });\n const stored = assertRollbackRecord({ migration, stored: recorded.get(row.name), dialect });\n const downSql = validateRollbackFile({ ...params, migration, dialect });\n plan.push({ migration, downSql, stored });\n }\n for (const entry of plan) await validateRollbackRecovery({ executor, dialect, ...entry });\n const rolledBack: string[] = [];\n for (const entry of plan) {\n await executeRollback({ ...params, executor, dialect, ...entry });\n rolledBack.push(entry.migration.name);\n }\n return { rolledBack };\n } });\n}\n\nfunction validateRollbackFile(params: RollbackOptions & { migration: MigrationFile; dialect: Dialect }): readonly string[] {\n const { migration, dialect } = params;\n if (migration.desiredStatePending === true) throw new VibeError({ code: \"VIBE_MIGRATION\", message: \"Unfinalized desired state cannot be rolled back\", meta: { reason: \"desired-state-unfinalized\", migration: migration.name } });\n if (migration.moduleOrigin !== undefined) {\n assertMaterializedModuleMigration({ migration });\n assertModuleOwnership({ origin: migration.moduleOrigin, desiredState: migration.desiredState });\n }\n const downSql = migration.downSql;\n if (downSql === undefined) throw new VibeError({ code: \"VIBE_MIGRATION\", message: `migration \"${migration.name}\" has no down.sql; roll it back manually, then repair with resolveMigration (as: \"rolled-back\")`, meta: { reason: \"rollback-down-missing\", migration: migration.name } });\n assertProbeMode({ dialect, probe: params.probe });\n if (migration.desiredState !== undefined) {\n assertDesiredState({ value: migration.desiredState, migration: migration.name });\n if (migration.desiredState.dialect !== dialect) throw new VibeError({ code: \"VIBE_MIGRATION\", message: \"Migration desired-state dialect mismatch\", meta: { reason: \"desired-state-dialect-mismatch\" } });\n assertRemovalAuthorization({ steps: diffSchemas({ from: migration.desiredState.to.schema, to: (migration.desiredState.down ?? migration.desiredState.from).schema, dialect }), previous: migration.desiredState.to, dialect, namespace: dialect === \"sqlite\" ? \"main\" : \"public\", ...(params.acceptIntegrityLoss === undefined ? {} : { acceptIntegrityLoss: params.acceptIntegrityLoss }) });\n }\n assertNativeMigrationMetadata({ migration, sql: downSql, dialect });\n assertExecutable({ migration, execution: migration.downExecution, sql: downSql, dialect });\n assertSecurityAcknowledgement({ securityChanges: [...(migration.downSecurityChanges ?? []), ...migrationRlsSecurityChanges({ migration, down: true })], ...(params.acceptSecurityChanges === undefined ? {} : { acceptSecurityChanges: params.acceptSecurityChanges }) });\n if (dialect === \"sqlite\" && usesSelfManagedTransactions({ sql: downSql })) assertSupportedSelfManagedScript({ sql: downSql, migration: migration.name, direction: \"down\" });\n return downSql;\n}\n\nfunction assertRollbackRecord(params: { migration: MigrationFile; stored?: RecordedRow; dialect: Dialect }): RecordedRow {\n const { migration, stored, dialect } = params;\n if (stored === undefined) throw new VibeError({ code: \"VIBE_MIGRATION\", message: `migration \"${migration.name}\" is not recorded as applied; nothing to roll back`, meta: { migration: migration.name } });\n assertChecksumMatches({ migration, stored: stored.checksum });\n if (stored.statementIndex >= 0 && (!isCompleteRecord({ dialect, migration, stored }) || stored.error !== undefined)) throw new VibeError({ code: \"VIBE_MIGRATION\", message: `migration \"${migration.name}\" is only partially applied or has an unresolved error; its down mirrors the FULL up. Finish or repair with resolveMigration`, meta: { reason: \"rollback-partial-up\", migration: migration.name, statementIndex: stored.statementIndex } });\n return stored;\n}\n\nasync function validateRollbackRecovery(params: { executor: SqlExecutor; dialect: Dialect; migration: MigrationFile; downSql: readonly string[]; stored: RecordedRow }): Promise<void> {\n const { executor, dialect, migration, downSql, stored } = params;\n if (stored.statementIndex >= 0) return;\n const start = -stored.statementIndex - 1;\n if (start > downSql.length) throw new VibeError({ code: \"VIBE_MIGRATION\", message: \"Rollback progress exceeds its statement count\", meta: { reason: \"rollback-progress-invalid\", migration: migration.name } });\n if (dialect === \"sqlite\" && usesSelfManagedTransactions({ sql: downSql })) assertSelfManagedResumeSafe({ sql: downSql, start, migration: migration.name, direction: \"down\" });\n if (!marksInflight({ dialect, execution: migration.downExecution }) || start >= downSql.length) return;\n const operation = migration.downExecution?.transaction === \"none\" ? operationFor({ execution: migration.downExecution, statement: start }) : undefined;\n if (operation !== undefined) await establishOperationState({ executor, dialect, operation });\n else if (inflightStatement({ error: stored.error }) === start) throw uncertainStatement({ migration: migration.name, statements: downSql, index: start, dialect, direction: \"down\" });\n}\n\nasync function executeRollback(params: RollbackOptions & { migration: MigrationFile; dialect: Dialect; downSql: readonly string[]; stored: RecordedRow }): Promise<void> {\n const { executor, dialect, migration, downSql, stored } = params;\n const moduleOrigins = applicationModuleOrigins({ migration, records: await readModuleJournal({ executor, dialect }) });\n if (usesStatementBookkeeping({ dialect, sql: downSql, ...(migration.downExecution === undefined ? {} : { execution: migration.downExecution }) })) {\n const start = stored.statementIndex < 0 ? -stored.statementIndex - 1 : 0;\n await withSessionLimits({\n executor, dialect, execution: migration.downExecution,\n run: () => runNonTransactionalDown({ executor, dialect, migration, moduleOrigins, downSql, start, probe: params.probe, storedError: stored.error }),\n });\n } else await runTransactionalDown({ executor, dialect, migration, moduleOrigins, downSql, probe: params.probe });\n}\n\n/** Atomic down path (postgres, sqlite): statements + record DELETE in one tx. */\nasync function runTransactionalDown(params: {\n executor: SqlExecutor;\n dialect: Dialect;\n migration: MigrationFile;\n moduleOrigins: readonly ModuleMigrationOrigin[];\n downSql: readonly string[];\n probe?: \"none\" | \"rollback\" | \"temporary\";\n}): Promise<void> {\n const { executor, dialect, migration, downSql } = params;\n const selfManaged = dialect === \"sqlite\" && usesSelfManagedTransactions({ sql: downSql });\n const wrap = !selfManaged;\n\n if (wrap) await executor({ text: \"BEGIN\" });\n try {\n const limits = migration.downExecution;\n if (wrap && dialect === \"postgres\" && limits !== undefined) {\n if ((limits.lockTimeoutMs ?? 0) > 0) await executor({ text: renderMigrationSessionSet({ dialect: getSqlDialect({ dialect }), setting: \"lock_timeout\", milliseconds: limits.lockTimeoutMs as number, local: true }).text });\n if ((limits.statementTimeoutMs ?? 0) > 0) await executor({ text: renderMigrationSessionSet({ dialect: getSqlDialect({ dialect }), setting: \"statement_timeout\", milliseconds: limits.statementTimeoutMs as number, local: true }).text });\n }\n if (migration.desiredState !== undefined) assertMigrationState({ report: await verifyMigrationTransition({ executor, dialect, from: migration.desiredState.from, to: migration.desiredState.to, removals: migration.desiredState.unmanagedRemovals, ...(params.probe === undefined ? {} : { probe: params.probe }) }) });\n if (migration.rls !== undefined) await introspectPostgres({ executor, rlsSchema: migration.rls.to, inTransaction: true, requireInstalledRls: true });\n await assertApplicationModuleState({ executor, origins: params.moduleOrigins, probe: params.probe });\n for (const statement of downSql) {\n await executeStatement({ executor, statement, dialect });\n }\n if (migration.desiredState !== undefined) assertMigrationState({ report: await verifyMigrationTransition({ executor, dialect, from: migration.desiredState.to, to: migration.desiredState.down ?? migration.desiredState.from, ...(params.probe === undefined ? {} : { probe: params.probe }) }) });\n if (migration.rls !== undefined) await introspectPostgres({ executor, rlsSchema: migration.rls.from, inTransaction: true, requireInstalledRls: true });\n await assertApplicationModuleState({ executor, origins: params.moduleOrigins, probe: params.probe });\n await executor({\n text: `DELETE FROM ${q(dialect, MIGRATIONS_TABLE_NAME)} WHERE ${q(dialect, \"name\")} = ${ph(dialect, 1)}`,\n values: [migration.name],\n });\n if (wrap) await executor({ text: \"COMMIT\" });\n } catch (error) {\n if (wrap) {\n try {\n await executor({ text: \"ROLLBACK\" });\n } catch {\n // Rollback is best-effort; the original failure matters more.\n }\n } else {\n await cleanupSelfManagedFailure({ executor });\n }\n throw new VibeError({\n code: \"VIBE_MIGRATION\",\n message: `rollback of \"${migration.name}\" failed: ${error instanceof Error ? error.message : String(error)}`,\n meta: { migration: migration.name, ...timeoutDiagnostic({ error }) },\n cause: error,\n });\n }\n}\n\n/**\n * Per-statement down path (mysql, and self-managed sqlite down scripts):\n * progress in `statement_index`, stored NEGATIVE (-(completed + 1)) so\n * apply/status can tell the direction apart.\n */\nasync function runNonTransactionalDown(params: {\n executor: SqlExecutor;\n dialect: Dialect;\n migration: MigrationFile;\n moduleOrigins: readonly ModuleMigrationOrigin[];\n downSql: readonly string[];\n start: number;\n /** The journal row's `error` text when resuming — may hold an in-flight marker. */\n storedError?: string;\n probe?: \"none\" | \"rollback\" | \"temporary\";\n}): Promise<void> {\n const { executor, dialect, migration, downSql } = params;\n const table = q(dialect, MIGRATIONS_TABLE_NAME);\n const selfManagedDown = dialect === \"sqlite\" && usesSelfManagedTransactions({ sql: downSql });\n // Same rule, same moment, in the down direction (see the up path above).\n if (selfManagedDown) {\n assertSupportedSelfManagedScript({ sql: downSql, migration: migration.name, direction: \"down\" });\n assertSelfManagedResumeSafe({ sql: downSql, start: params.start, migration: migration.name, direction: \"down\" });\n }\n const execution = migration.downExecution;\n const declared = execution?.transaction === \"none\";\n // Identical regime to the up direction: mysql always has the window, postgres\n // only when declared, sqlite closes it with a per-statement transaction.\n const marks = marksInflight({ dialect, ...(execution === undefined ? {} : { execution }) });\n const selfManaged = selfManagedDown;\n // A recorded index can point INSIDE a rebuild block, one past its\n // session-scoped pragma — rewind to the block's start (see execute.ts).\n const start = selfManaged\n ? selfManagedResumeStart({ sql: downSql, start: params.start })\n : params.start;\n\n const recordProgress = async (completed: number): Promise<void> => {\n await executor({\n text: `UPDATE ${table} SET ${q(dialect, \"statement_index\")} = ${ph(dialect, 1)}, ${q(dialect, \"error\")} = NULL WHERE ${q(dialect, \"name\")} = ${ph(dialect, 2)}`,\n values: [-(completed + 1), migration.name],\n });\n };\n\n // Same resume contract as the up direction: a down statement whose effect\n // cannot be established is never replayed automatically.\n const resumeOperation = marks && declared && start < downSql.length\n ? operationFor({ ...(execution === undefined ? {} : { execution }), statement: start })\n : undefined;\n\n // This refusal is checked BEFORE the \"rollback started\" write below, and the\n // order is the whole point: that write sets `error` to NULL and would take\n // the in-flight marker with it. A refusal thrown after it is SPENT — the\n // operator's next `migrate down` reads a clean row, finds nothing in flight\n // and replays the statement silently, which is the defect itself.\n if (\n marks\n && start < downSql.length\n && resumeOperation === undefined\n && inflightStatement({ ...(params.storedError === undefined ? {} : { error: params.storedError }) }) === start\n ) {\n throw uncertainStatement({ migration: migration.name, statements: downSql, index: start, dialect, direction: \"down\" });\n }\n\n // Probe before any write that could clear the interrupted statement's marker.\n const resumeState = resumeOperation === undefined ? undefined : await establishOperationState({ executor, dialect, operation: resumeOperation });\n\n await assertApplicationModuleState({ executor, origins: params.moduleOrigins, probe: params.probe });\n // Mark the rollback as started before the first statement runs, so a crash\n // between statements can never be mistaken for a completed apply.\n if (start === 0) {\n if (migration.desiredState !== undefined) assertMigrationState({ report: await verifyMigrationTransition({ executor, dialect, from: migration.desiredState.from, to: migration.desiredState.to, removals: migration.desiredState.unmanagedRemovals, ...(params.probe === undefined ? {} : { probe: params.probe }) }) });\n await recordProgress(0);\n }\n\n let cursor = start;\n if (\n resumeOperation !== undefined\n && resumeState === \"satisfied\"\n ) {\n if (start + 1 === downSql.length && migration.desiredState !== undefined) assertMigrationState({ report: await verifyMigrationTransition({ executor, dialect, from: migration.desiredState.to, to: migration.desiredState.down ?? migration.desiredState.from, ...(params.probe === undefined ? {} : { probe: params.probe }) }) });\n if (start + 1 === downSql.length) await assertApplicationModuleState({ executor, origins: params.moduleOrigins, probe: params.probe });\n await recordProgress(start + 1);\n cursor = start + 1;\n }\n\n for (let index = cursor; index < downSql.length; index += 1) {\n const atomic = selfManaged && canCheckpointAtomically({ sql: downSql, index });\n const commitsBlock = selfManaged && isSelfManagedCommit({ statement: downSql[index] as string });\n if (marks) {\n await executor({\n text: `UPDATE ${table} SET ${q(dialect, \"error\")} = ${ph(dialect, 1)} WHERE ${q(dialect, \"name\")} = ${ph(dialect, 2)}`,\n values: [`${INFLIGHT_PREFIX}${index}`, migration.name],\n });\n }\n if (atomic) await executor({ text: \"BEGIN\" });\n try {\n // Persist the index AFTER COMMIT in the transaction it describes. A kill\n // before COMMIT rolls back both; a kill after it cannot replay the block.\n if (commitsBlock) {\n if (migration.desiredState !== undefined && downSql.slice(index + 1).every((statement) => /^\\s*PRAGMA\\s+foreign_keys\\s*=\\s*ON\\s*;?\\s*$/i.test(statement))) assertMigrationState({ report: await verifySqliteTransitionBeforeRestore({ executor, dialect, from: migration.desiredState.to, to: migration.desiredState.down ?? migration.desiredState.from, ...(params.probe === undefined ? {} : { probe: params.probe }) }) });\n await assertApplicationModuleState({ executor, origins: params.moduleOrigins, probe: params.probe, sqliteRestorePending: true });\n await recordProgress(index + 1);\n }\n await executeStatement({ executor, statement: downSql[index] as string, dialect });\n if (index === downSql.length - 1 && migration.desiredState !== undefined) assertMigrationState({ report: await verifyMigrationTransition({ executor, dialect, from: migration.desiredState.to, to: migration.desiredState.down ?? migration.desiredState.from, ...(params.probe === undefined ? {} : { probe: params.probe }) }) });\n if (index === downSql.length - 1) await assertApplicationModuleState({ executor, origins: params.moduleOrigins, probe: params.probe });\n if (atomic) {\n await recordProgress(index + 1);\n await executor({ text: \"COMMIT\" });\n }\n } catch (error) {\n // Self-managed scripts fail INSIDE their own transaction: close it first\n // or the error UPDATE below is rolled back with it (see the apply path).\n if (selfManaged) await cleanupSelfManagedFailure({ executor });\n try {\n await executor({\n text: `UPDATE ${table} SET ${q(dialect, \"error\")} = ${ph(dialect, 1)} WHERE ${q(dialect, \"name\")} = ${ph(dialect, 2)}`,\n values: [marks ? `${INFLIGHT_PREFIX}${index}` : error instanceof Error ? error.message : String(error), migration.name],\n });\n } catch {\n // Progress row update is best-effort; the original failure matters more.\n }\n throw new VibeError({\n code: \"VIBE_MIGRATION\",\n message: `rollback of \"${migration.name}\" failed at down statement ${index + 1} of ${downSql.length}: ${error instanceof Error ? error.message : String(error)}. ${marks ? \"The statement outcome is unknown; inspect its effects before resolving or retrying.\" : \"Progress is recorded; re-running the rollback resumes from this statement.\"}`,\n meta: { migration: migration.name, statementIndex: index, ...(marks ? { outcome: \"unknown\" } : {}), ...timeoutDiagnostic({ error }) },\n cause: error,\n });\n }\n if (!atomic && !commitsBlock) await recordProgress(index + 1);\n }\n\n if (migration.desiredState !== undefined) assertMigrationState({ report: await verifyMigrationTransition({ executor, dialect, from: migration.desiredState.to, to: migration.desiredState.down ?? migration.desiredState.from, ...(params.probe === undefined ? {} : { probe: params.probe }) }) });\n await executor({\n text: `DELETE FROM ${table} WHERE ${q(dialect, \"name\")} = ${ph(dialect, 1)}`,\n values: [migration.name],\n });\n}\n\n// ─── Execution paths ──────────────────────────────────────────────\n\n/** Transactional path (postgres, sqlite) — see module doc. */\nasync function runTransactional(params: {\n executor: SqlExecutor;\n dialect: Dialect;\n migration: MigrationFile;\n moduleOrigins: readonly ModuleMigrationOrigin[];\n probe?: \"none\" | \"rollback\" | \"temporary\";\n}): Promise<void> {\n const { executor, dialect, migration } = params;\n // sqlite rebuild scripts manage their own transactions — never wrap them.\n const selfManaged = dialect === \"sqlite\" && usesSelfManagedTransactions({ sql: migration.sql });\n const wrap = !selfManaged;\n\n if (wrap) await executor({ text: \"BEGIN\" });\n try {\n // Declared limits ride the transaction itself here (SET LOCAL), so COMMIT\n // or ROLLBACK restores them with no separate bookkeeping.\n const limits = migration.execution;\n if (wrap && dialect === \"postgres\" && limits !== undefined) {\n if ((limits.lockTimeoutMs ?? 0) > 0) await executor({ text: renderMigrationSessionSet({ dialect: getSqlDialect({ dialect }), setting: \"lock_timeout\", milliseconds: limits.lockTimeoutMs as number, local: true }).text });\n if ((limits.statementTimeoutMs ?? 0) > 0) await executor({ text: renderMigrationSessionSet({ dialect: getSqlDialect({ dialect }), setting: \"statement_timeout\", milliseconds: limits.statementTimeoutMs as number, local: true }).text });\n }\n await assertForwardStart({ executor, dialect, migration, ...(params.probe === undefined ? {} : { probe: params.probe }) });\n await assertApplicationModuleState({ executor, origins: params.moduleOrigins, probe: params.probe });\n if (migration.rls !== undefined) await introspectPostgres({ executor, rlsSchema: migration.rls.from, inTransaction: true, requireInstalledRls: true });\n let statementIndex = 0;\n for (const statement of migration.sql) {\n await executeStatement({ executor, statement, dialect });\n statementIndex += 1;\n }\n if (migration.desiredState !== undefined) assertMigrationState({ report: await verifyMigrationTransition({ executor, from: migration.desiredState.from, to: migration.desiredState.to, removals: migration.desiredState.unmanagedRemovals, dialect, ...(params.probe === undefined ? {} : { probe: params.probe }) }) });\n if (migration.rls !== undefined) await introspectPostgres({ executor, rlsSchema: migration.rls.to, inTransaction: true, requireInstalledRls: true });\n await assertApplicationModuleState({ executor, origins: params.moduleOrigins, probe: params.probe });\n if (migration.moduleOrigin !== undefined) await insertModuleJournal({ executor, dialect, migration, index: statementIndex, complete: true });\n else await executor({\n text: `INSERT INTO ${q(dialect, MIGRATIONS_TABLE_NAME)} (${q(dialect, \"name\")}, ${q(dialect, \"checksum\")}, ${q(dialect, \"statement_index\")}) VALUES (${ph(dialect, 1)}, ${ph(dialect, 2)}, ${ph(dialect, 3)})`,\n values: [migration.name, checksumOf({ migration }), statementIndex],\n });\n if (wrap) await executor({ text: \"COMMIT\" });\n } catch (error) {\n if (wrap) {\n try {\n await executor({ text: \"ROLLBACK\" });\n } catch {\n // Rollback is best-effort; the original failure matters more.\n }\n } else {\n await cleanupSelfManagedFailure({ executor });\n }\n throw new VibeError({\n code: \"VIBE_MIGRATION\",\n message: `migration \"${migration.name}\" failed: ${error instanceof Error ? error.message : String(error)}`,\n meta: { migration: migration.name },\n cause: error,\n });\n }\n}\n\n/**\n * Per-statement path (mysql — DDL auto-commits — and self-managed sqlite\n * scripts, which cannot be wrapped): per-statement progress in the\n * bookkeeping row; failures record the error and later runs resume.\n */\nasync function runNonTransactional(params: {\n executor: SqlExecutor;\n dialect: Dialect;\n migration: MigrationFile;\n moduleOrigins: readonly ModuleMigrationOrigin[];\n start: number;\n insertRecord: boolean;\n /** The journal row's `error` text when resuming — may hold an in-flight marker. */\n storedError?: string;\n probe?: \"none\" | \"rollback\" | \"temporary\";\n}): Promise<void> {\n const { executor, dialect, migration, insertRecord } = params;\n const table = q(dialect, MIGRATIONS_TABLE_NAME);\n const selfManaged = dialect === \"sqlite\" && usesSelfManagedTransactions({ sql: migration.sql });\n // Before the journal row, before the first statement: a self-managed script\n // is only recoverable in the shape the generator emits (execute.ts). This\n // sits HERE rather than up front with the other validations so that a\n // deviant migration already recorded as applied cannot wedge `migrate apply`\n // for the whole history — a record repaired with `resolveMigration` skips\n // before reaching this point, which is the operator's way out.\n if (selfManaged) {\n assertSupportedSelfManagedScript({ sql: migration.sql, migration: migration.name, direction: \"up\" });\n assertSelfManagedResumeSafe({ sql: migration.sql, start: params.start, migration: migration.name, direction: \"up\" });\n }\n const execution = migration.execution;\n const declared = execution?.transaction === \"none\";\n // mysql has this window whether or not anyone declared anything; postgres\n // only when the migration opted out of transactions. sqlite closes it instead\n // of recording it (see the atomic checkpoint below).\n const marks = marksInflight({ dialect, ...(execution === undefined ? {} : { execution }) });\n // A recorded index can point INSIDE a rebuild block, one past its\n // session-scoped `PRAGMA foreign_keys=OFF` — resuming there would replay the\n // rebuild (DROP TABLE included) with foreign keys ON. Rewind to the block.\n const start = selfManaged\n ? selfManagedResumeStart({ sql: migration.sql, start: params.start })\n : params.start;\n\n await assertApplicationModuleState({ executor, origins: params.moduleOrigins, probe: params.probe });\n if (insertRecord) {\n if (migration.desiredState !== undefined) {\n await assertForwardStart({ executor, dialect, migration, ...(params.probe === undefined ? {} : { probe: params.probe }) });\n if (migration.sql.length === 0) assertMigrationState({ report: await verifyMigrationTransition({ executor, from: migration.desiredState.from, to: migration.desiredState.to, removals: migration.desiredState.unmanagedRemovals, dialect, ...(params.probe === undefined ? {} : { probe: params.probe }) }) });\n }\n if (migration.moduleOrigin !== undefined) await insertModuleJournal({ executor, dialect, migration, index: 0, complete: false });\n else await executor({\n text: `INSERT INTO ${table} (${q(dialect, \"name\")}, ${q(dialect, \"checksum\")}, ${q(dialect, \"statement_index\")}) VALUES (${ph(dialect, 1)}, ${ph(dialect, 2)}, 0)`,\n values: [migration.name, checksumOf({ migration })],\n });\n }\n\n const checkpoint = async (completed: number): Promise<void> => {\n await executor({\n text: `UPDATE ${table} SET ${q(dialect, \"statement_index\")} = ${ph(dialect, 1)}, ${q(dialect, \"error\")} = NULL WHERE ${q(dialect, \"name\")} = ${ph(dialect, 2)}`,\n values: [completed, migration.name],\n });\n };\n\n // RESUME: establish what happened to the statement we stopped on, before\n // touching the database again. This is the whole point of the declared\n // regime — a statement whose effect cannot be established is never replayed.\n let cursor = start;\n if (marks && !insertRecord && start < migration.sql.length) {\n // Declared operations exist on postgres only — they are the one way a\n // statement's outcome can be READ back instead of guessed.\n const operation = declared ? operationFor({ ...(execution === undefined ? {} : { execution }), statement: start }) : undefined;\n if (operation !== undefined) {\n const state = await establishOperationState({ executor, dialect, operation });\n if (state === \"satisfied\") {\n if (start + 1 === migration.sql.length && migration.desiredState !== undefined) assertMigrationState({ report: await verifyMigrationTransition({ executor, dialect, from: migration.desiredState.from, to: migration.desiredState.to, removals: migration.desiredState.unmanagedRemovals, ...(params.probe === undefined ? {} : { probe: params.probe }) }) });\n if (start + 1 === migration.sql.length) await assertApplicationModuleState({ executor, origins: params.moduleOrigins, probe: params.probe });\n await checkpoint(start + 1);\n cursor = start + 1;\n }\n } else if (inflightStatement({ ...(params.storedError === undefined ? {} : { error: params.storedError }) }) === start) {\n throw uncertainStatement({ migration: migration.name, statements: migration.sql, index: start, dialect, direction: \"up\" });\n }\n }\n\n for (let index = cursor; index < migration.sql.length; index += 1) {\n // sqlite: hold the statement and its checkpoint in ONE transaction, so the\n // gap never opens. Either both landed or neither did.\n const atomic = selfManaged && canCheckpointAtomically({ sql: migration.sql, index });\n const commitsBlock = selfManaged && isSelfManagedCommit({ statement: migration.sql[index] as string });\n // Record the intent to run BEFORE running it, so a crash in the gap\n // between the statement committing and its checkpoint is distinguishable\n // from a statement that never started.\n if (marks) {\n await executor({\n text: `UPDATE ${table} SET ${q(dialect, \"error\")} = ${ph(dialect, 1)} WHERE ${q(dialect, \"name\")} = ${ph(dialect, 2)}`,\n values: [`${INFLIGHT_PREFIX}${index}`, migration.name],\n });\n }\n if (atomic) await executor({ text: \"BEGIN\" });\n try {\n // Same atomic commit checkpoint as the down direction above.\n if (commitsBlock) {\n if (migration.desiredState !== undefined && migration.sql.slice(index + 1).every((statement) => /^\\s*PRAGMA\\s+foreign_keys\\s*=\\s*ON\\s*;?\\s*$/i.test(statement))) assertMigrationState({ report: await verifySqliteTransitionBeforeRestore({ executor, dialect, from: migration.desiredState.from, to: migration.desiredState.to, removals: migration.desiredState.unmanagedRemovals, ...(params.probe === undefined ? {} : { probe: params.probe }) }) });\n await assertApplicationModuleState({ executor, origins: params.moduleOrigins, probe: params.probe, sqliteRestorePending: true });\n await checkpoint(index + 1);\n }\n await executeStatement({ executor, statement: migration.sql[index] as string, dialect });\n if (index === migration.sql.length - 1 && migration.desiredState !== undefined) assertMigrationState({ report: await verifyMigrationTransition({ executor, from: migration.desiredState.from, to: migration.desiredState.to, removals: migration.desiredState.unmanagedRemovals, dialect, ...(params.probe === undefined ? {} : { probe: params.probe }) }) });\n if (index === migration.sql.length - 1) await assertApplicationModuleState({ executor, origins: params.moduleOrigins, probe: params.probe });\n if (atomic) {\n await checkpoint(index + 1);\n await executor({ text: \"COMMIT\" });\n }\n } catch (error) {\n // A self-managed script fails INSIDE its own BEGIN, with foreign_keys\n // OFF. Close that transaction FIRST: otherwise the error UPDATE below\n // joins it and is rolled back with it, and the session keeps running\n // inside a stale transaction (every later statement on this connection).\n if (selfManaged) await cleanupSelfManagedFailure({ executor });\n // Record the failure (best-effort) — statement_index already points at\n // the failed statement, so a re-run resumes exactly here.\n try {\n await executor({\n text: `UPDATE ${table} SET ${q(dialect, \"error\")} = ${ph(dialect, 1)} WHERE ${q(dialect, \"name\")} = ${ph(dialect, 2)}`,\n values: [marks ? `${INFLIGHT_PREFIX}${index}` : error instanceof Error ? error.message : String(error), migration.name],\n });\n } catch {\n // Progress row update is best-effort; the original failure matters more.\n }\n const sqlState = sqlStateOf(error);\n const timeout = sqlState === \"55P03\" ? \"lock-timeout\" : sqlState === \"57014\" ? \"statement-timeout\" : undefined;\n throw new VibeError({\n code: \"VIBE_MIGRATION\",\n message: timeout === \"lock-timeout\"\n ? `migration \"${migration.name}\" gave up waiting for a lock at statement ${index + 1} of ${migration.sql.length} (lock_timeout ${String(execution?.lockTimeoutMs ?? 0)}ms, SQLSTATE 55P03). Another session holds a conflicting lock; inspect the declared operation before retrying.`\n : timeout === \"statement-timeout\"\n ? `migration \"${migration.name}\" exceeded its statement_timeout at statement ${index + 1} of ${migration.sql.length} (${String(execution?.statementTimeoutMs ?? 0)}ms, SQLSTATE 57014). Inspect the declared operation before retrying.`\n : `migration \"${migration.name}\" failed at statement ${index + 1} of ${migration.sql.length}: ${error instanceof Error ? error.message : String(error)}. ${marks ? \"The statement outcome is unknown; inspect its effects before resolving or retrying.\" : \"Progress is recorded; re-running applyMigrations resumes from this statement.\"}`,\n meta: { migration: migration.name, statementIndex: index, ...(marks ? { outcome: \"unknown\" } : {}), ...(timeout === undefined ? {} : { reason: timeout, sqlState }) },\n cause: error,\n });\n }\n if (!atomic && !commitsBlock) await checkpoint(index + 1);\n }\n if (migration.moduleOrigin !== undefined) {\n assertMigrationState({ report: await verifyMigrationState({ executor, dialect, expected: migration.desiredState!.to }) });\n await completeModuleJournal({ executor, dialect, migration });\n }\n}\n\n// ─── Advisory locks ───────────────────────────────────────────────\n\nasync function acquireLock(params: { executor: SqlExecutor; dialect: Dialect }): Promise<void> {\n const { executor, dialect } = params;\n if (dialect === \"postgres\") {\n await executor({ text: `SELECT pg_advisory_lock(${PG_ADVISORY_LOCK_KEY})` });\n return;\n }\n if (dialect === \"mysql\") {\n // values: [] forces the row-returning executor path (adapter contract:\n // value-less text may run as a row-less batch statement).\n const rows = await executor({\n text: `SELECT GET_LOCK('${MYSQL_LOCK_NAME}', ${MYSQL_LOCK_TIMEOUT_SECONDS}) AS \\`vibe_lock\\``,\n values: [],\n });\n const acquired = Number(rows[0]?.vibe_lock) === 1;\n if (!acquired) {\n throw new VibeError({\n code: \"VIBE_MIGRATION\",\n message: `could not acquire the migration lock ('${MYSQL_LOCK_NAME}') within ${MYSQL_LOCK_TIMEOUT_SECONDS}s — another migration run is in progress`,\n meta: { lock: MYSQL_LOCK_NAME },\n });\n }\n }\n // SQLite has no advisory lock here. Individual BEGINs do not protect a\n // whole self-managed run; callers must provide cross-connection ownership.\n}\n\nasync function releaseLock(params: { executor: SqlExecutor; dialect: Dialect }): Promise<void> {\n const { executor, dialect } = params;\n if (dialect === \"postgres\") {\n await executor({ text: `SELECT pg_advisory_unlock(${PG_ADVISORY_LOCK_KEY})` });\n } else if (dialect === \"mysql\") {\n await executor({ text: `SELECT RELEASE_LOCK('${MYSQL_LOCK_NAME}')` });\n }\n}\n\n// ─── Internals ────────────────────────────────────────────────────\n\ntype RecordedRow = JournalRow;\n\n// ─── Declared execution semantics ────────────────────────────\n\n/**\n * Sentinel written into the EXISTING nullable `error` column before a\n * statement of a declared-nontransactional migration runs, and cleared by that\n * statement's success checkpoint.\n *\n * Reusing `error` is deliberate: the column has been in all three dialects'\n * CREATE TABLE since the journal was introduced, so no installed database\n * needs migrating and an older binary reading the row simply sees a string it\n * reports as an error. There is no on-disk format change.\n */\nconst INFLIGHT_PREFIX = \"VIBE_INFLIGHT:\";\n\n/**\n * The statement index an in-flight marker refers to, if the stored text is one.\n *\n * The whole remainder must be digits. A driver error message that merely opens\n * with the sentinel is an ERROR, and reading it as a marker would stop a\n * migration that is safe to resume.\n */\nfunction inflightStatement(params: { error?: string }): number | undefined {\n const error = params.error;\n if (error === undefined || !error.startsWith(INFLIGHT_PREFIX)) return undefined;\n const digits = error.slice(INFLIGHT_PREFIX.length);\n if (!/^\\d+$/.test(digits)) return undefined;\n const index = Number.parseInt(digits, 10);\n return Number.isSafeInteger(index) ? index : undefined;\n}\n\n/**\n * Does this (dialect, script) pair have a window between a statement\n * committing and its journal checkpoint that nothing can close?\n *\n * - **mysql: yes, always.** Every statement auto-commits on its own, DDL\n * unconditionally, and no transaction can hold a statement and its checkpoint\n * together. Nobody has to declare anything for the window to exist.\n * - **postgres: only when the migration declared `transaction: \"none\"`.**\n * Otherwise the migration and its journal row are one transaction.\n * - **sqlite: no.** A self-managed script's statements are covered either by\n * their rebuild block's own transaction or by the per-statement transaction\n * {@link canCheckpointAtomically} authorises, and any other sqlite script\n * runs wholly inside `runTransactional`.\n *\n * Where the answer is yes, an in-flight marker is written before the statement\n * runs and cleared by its checkpoint, so a resume can tell \"this statement was\n * running when we died\" from \"this statement never started\".\n */\nfunction marksInflight(params: { dialect: Dialect; execution?: MigrationExecution }): boolean {\n return params.execution?.transaction === \"none\" || params.dialect === \"mysql\";\n}\n\n/**\n * The refusal a still-present in-flight marker produces: this statement was\n * running when the process died, and nothing in the database says whether it\n * committed.\n *\n * Replaying it is the one thing that must not happen automatically. A DDL\n * replay usually fails loudly, but `CREATE TABLE IF NOT EXISTS` and its\n * siblings do not, and a data statement such as `UPDATE t SET n = n + 1`\n * applies twice in silence. So the runner stops and hands the decision to an\n * operator, who can see the rows and VibeORM cannot.\n */\nfunction uncertainStatement(params: {\n migration: string;\n statements: readonly string[];\n index: number;\n dialect: Dialect;\n direction: \"up\" | \"down\";\n}): VibeError {\n const { migration, statements, index, dialect, direction } = params;\n const subject = direction === \"down\" ? `rollback of \"${migration}\"` : `migration \"${migration}\"`;\n const position = `${direction === \"down\" ? \"down statement\" : \"statement\"} ${index + 1} of ${statements.length}`;\n const why =\n dialect === \"mysql\"\n ? \"MySQL commits every statement on its own, so nothing outside the statement records whether it finished.\"\n : \"That statement declares no operation whose effect recovery can read back from the catalog.\";\n return new VibeError({\n code: \"VIBE_MIGRATION\",\n message:\n `${subject} was interrupted while ${position} was running. ${why} ` +\n \"It may or may not have committed, and replaying it could apply it twice, so VibeORM stops here instead of guessing. \" +\n \"Inspect what that statement did to the database, then follow \\\"Recovering from a stopped migration\\\" in docs/migrations.md: \" +\n `clear the \\`error\\` column of this migration's journal row if the statement did NOT land, set \\`statement_index\\` to ${direction === \"down\" ? -(index + 2) : index + 1} if it DID, ` +\n \"or finish the whole migration by hand and record that with `vibeorm migrate resolve --applied`. \" +\n `The statement was: ${(statements[index] as string).slice(0, 200)}`,\n meta: {\n reason: \"uncertain-statement\",\n outcome: \"unknown\",\n migration,\n statementIndex: index,\n ...(direction === \"down\" ? { direction } : {}),\n },\n });\n}\n\n/**\n * Validate a migration's declared execution block and refuse the combinations\n * no dialect can honour — at apply time, which is the earliest moment the\n * dialect is known.\n *\n * `transaction: \"none\"` is a PostgreSQL concept here. sqlite and mysql have no\n * separate nontransactional regime to opt into: mysql's DDL auto-commits\n * already, and a sqlite script either wraps or manages its own transactions.\n * Silently accepting the flag there would promise a guarantee that is not\n * being made.\n */\nfunction assertExecutable(params: {\n migration: MigrationFile;\n execution?: MigrationExecution;\n sql: readonly string[];\n dialect: Dialect;\n}): void {\n const { migration, execution, dialect } = params;\n assertValidExecution({ ...(execution === undefined ? {} : { execution }), statements: params.sql.length, migration: migration.name });\n if (execution === undefined || isDefaultExecution({ execution })) return;\n if (dialect !== \"postgres\") {\n throw new VibeError({\n code: \"VIBE_UNSUPPORTED_CAPABILITY\",\n message: `migration \"${migration.name}\" declares explicit execution semantics (transaction: \"${execution.transaction}\"), which only the postgres runner implements — ${dialect} has no separate nontransactional regime to opt into`,\n meta: { reason: \"nontransactional-unsupported\", dialect, migration: migration.name, feature: \"nontransactionalMigrations\" },\n });\n }\n}\n\n/** SQLSTATE of a driver error, however deeply the adapter wrapped it. */\nfunction sqlStateOf(error: unknown): string | undefined {\n let current: unknown = error;\n for (let depth = 0; depth < 5 && current !== null && typeof current === \"object\"; depth += 1) {\n const code = (current as { code?: unknown }).code;\n if (typeof code === \"string\" && /^[0-9A-Z]{5}$/.test(code)) return code;\n current = (current as { cause?: unknown }).cause;\n }\n return undefined;\n}\n\n/** Migration-owned limits, applied to the pinned session and restored after. */\nasync function withSessionLimits<T>(params: {\n executor: SqlExecutor;\n dialect: Dialect;\n execution?: MigrationExecution;\n run: () => Promise<T>;\n}): Promise<T> {\n const { executor, dialect, execution } = params;\n const lock = execution?.lockTimeoutMs ?? 0;\n const statement = execution?.statementTimeoutMs ?? 0;\n if (dialect !== \"postgres\" || (lock === 0 && statement === 0)) return params.run();\n\n const sqlDialect = getSqlDialect({ dialect });\n const previous = (await executor({ text: renderMigrationSessionRead({ dialect: sqlDialect }).text, values: [] }))[0];\n if (lock > 0) await executor({ text: renderMigrationSessionSet({ dialect: sqlDialect, setting: \"lock_timeout\", milliseconds: lock }).text });\n if (statement > 0) await executor({ text: renderMigrationSessionSet({ dialect: sqlDialect, setting: \"statement_timeout\", milliseconds: statement }).text });\n try {\n return await params.run();\n } finally {\n // Restore what the session had, not a guessed default: this connection is\n // pinned for the whole migrate operation and outlives one migration.\n for (const [setting, value] of [[\"lock_timeout\", previous?.lockTimeout], [\"statement_timeout\", previous?.statementTimeout]] as const) {\n if (setting === \"lock_timeout\" ? lock === 0 : statement === 0) continue;\n try {\n await executor({ text: renderMigrationSessionRestore({ dialect: sqlDialect, setting, value: typeof value === \"string\" ? value : \"\" }).text });\n } catch {\n // Restoring is best-effort; the original outcome matters more.\n }\n }\n }\n}\n\n/**\n * Which bookkeeping regime a (dialect, script) pair runs in: `true` when\n * progress is recorded PER STATEMENT — mysql (DDL auto-commits) and sqlite\n * scripts that manage their own transactions — `false` when the migration and\n * its record are one atomic unit.\n *\n * ONE predicate on purpose. Spelled per call site it was wrong in three places\n * at once: status called a partial self-managed record \"applied\", rollback's\n * partial-up guard went blind on sqlite, and apply wedged the migration.\n */\nfunction usesStatementBookkeeping(params: {\n dialect: Dialect;\n sql: readonly string[];\n execution?: MigrationExecution;\n}): boolean {\n const { dialect, sql } = params;\n // A migration that declares it runs outside a transaction cannot have an\n // atomic bookkeeping INSERT: there is no transaction for the record to join.\n // This clause fires ONLY on an explicit declaration, so mysql and\n // self-managed sqlite scripts keep exactly the two rules they always had.\n if (params.execution?.transaction === \"none\") return true;\n if (!DIALECT_CAPABILITIES[dialect].transactionalDdl) return true;\n return dialect === \"sqlite\" && usesSelfManagedTransactions({ sql });\n}\n\n/**\n * Is a bookkeeping row a COMPLETE application of its migration?\n *\n * Atomic regime: the row exists at all ⇒ the whole migration ran. Per-statement\n * regime: only once `statement_index` reached the statement count. An empty\n * checksum is a `resolveMigration` repair — complete by definition, content\n * unseen.\n *\n * Backward compatible with rows written before per-statement bookkeeping\n * covered self-managed sqlite scripts: `runTransactional` records\n * `statement_index = sql.length`, so those rows satisfy the last clause and\n * are never falsely resumed.\n */\nfunction isCompleteRecord(params: {\n dialect: Dialect;\n migration: MigrationFile;\n stored: RecordedRow;\n}): boolean {\n const { dialect, migration, stored } = params;\n if (migration.moduleOrigin !== undefined) return moduleRecordComplete({ migration, stored });\n if (stored.checksum === \"\") return true;\n if (!usesStatementBookkeeping({ dialect, sql: migration.sql, ...(migration.execution === undefined ? {} : { execution: migration.execution }) })) return true;\n return stored.statementIndex >= migration.sql.length;\n}\n\nasync function recordedRows(params: {\n executor: SqlExecutor;\n dialect: Dialect;\n modules?: boolean;\n}): Promise<Map<string, RecordedRow>> {\n const { executor, dialect } = params;\n if (params.modules === true) return new Map([...(await readModuleJournal({ executor, dialect }))].map(([name, record]) => [name, record.row]));\n // values: [] forces the row-returning executor path (adapter contract:\n // value-less text may run as a row-less multi-statement batch on sqlite).\n const rows = await readJournalRows({ executor, dialect, query: {\n text: `SELECT ${q(dialect, \"name\")}, ${q(dialect, \"checksum\")}, ${q(dialect, \"statement_index\")}, ${q(dialect, \"error\")} FROM ${q(dialect, MIGRATIONS_TABLE_NAME)} ORDER BY ${q(dialect, \"id\")}`,\n values: [],\n } });\n return rows ?? new Map<string, RecordedRow>();\n}\n\nfunction assertChecksumMatches(params: { migration: MigrationFile; stored: string }): void {\n const { migration, stored } = params;\n if (stored === \"\") return; // resolveMigration record — content unknown by design.\n const actual = checksumOf({ migration });\n if (stored === actual) return;\n throw new VibeError({\n code: \"VIBE_MIGRATION\",\n message: `checksum mismatch for migration \"${migration.name}\" — its SQL changed after it was applied (recorded ${stored.slice(0, 12)}…, current ${actual.slice(0, 12)}…)`,\n meta: { migration: migration.name, recorded: stored, current: actual },\n });\n}\n\nfunction assertResumable(params: { migration: MigrationFile; stored: RecordedRow }): void {\n const { migration, stored } = params;\n const actual = checksumOf({ migration });\n if (stored.checksum === actual) return;\n throw new VibeError({\n code: \"VIBE_MIGRATION\",\n message: `migration \"${migration.name}\" is partially applied (${stored.statementIndex} statement(s) done) and its SQL has CHANGED since — refusing to resume; restore the original SQL or repair with resolveMigration`,\n meta: {\n migration: migration.name,\n statementIndex: stored.statementIndex,\n recorded: stored.checksum,\n current: actual,\n },\n });\n}\n\n/** Classify timeout diagnostics without treating cancellation as proof of no effects. */\nfunction timeoutDiagnostic(params: { error: unknown }): Record<string, unknown> {\n const sqlState = sqlStateOf(params.error);\n const reason = sqlState === \"55P03\" ? \"lock-timeout\" : sqlState === \"57014\" ? \"statement-timeout\" : undefined;\n return reason === undefined ? {} : { reason, sqlState };\n}\n\n/** Duplicate file identities cannot describe a replayable chain. */\nfunction assertDistinctMigrationNames(params: { migrations: readonly MigrationFile[] }): void {\n const names = new Set<string>();\n for (const migration of params.migrations) {\n if (names.has(migration.name)) throw new VibeError({ code: \"VIBE_MIGRATION\", message: `Duplicate migration file identity \"${migration.name}\"`, meta: { reason: \"history-duplicate-file\", migration: migration.name } });\n names.add(migration.name);\n }\n}\n\n/** A complete chain must preserve journal order and append new work only. */\nfunction assertCompleteHistory(params: { migrations: readonly MigrationFile[]; recorded: ReadonlyMap<string, RecordedRow>; dialect: Dialect }): void {\n const byName = new Map(params.migrations.map((migration) => [migration.name, migration]));\n for (const name of params.recorded.keys()) {\n if (!byName.has(name)) throw new VibeError({ code: \"VIBE_MIGRATION\", message: `Recorded migration \"${name}\" has no file in the complete chain`, meta: { reason: \"history-unknown-file\", migration: name } });\n }\n let index = 0;\n for (const [name, stored] of params.recorded) {\n const migration = params.migrations[index]!;\n if (migration?.name !== name) throw new VibeError({ code: \"VIBE_MIGRATION\", message: \"Recorded migration order is not a prefix of the supplied complete chain\", meta: { reason: \"history-order-conflict\", migration: name, expected: migration?.name, position: index } });\n if (stored.statementIndex >= 0 && !isCompleteRecord({ dialect: params.dialect, migration, stored }) && index !== params.recorded.size - 1) throw new VibeError({ code: \"VIBE_MIGRATION\", message: `Partial migration \"${name}\" precedes later recorded work`, meta: { reason: \"history-partial-not-last\", migration: name } });\n index++;\n }\n}\n\n/** Validate all known identities and dirty journal rows before any migration runs. */\nasync function assertApplyHistory(params: {\n executor: SqlExecutor;\n dialect: Dialect;\n migrations: readonly MigrationFile[];\n recorded: ReadonlyMap<string, RecordedRow>;\n}): Promise<void> {\n const { executor, dialect, migrations, recorded } = params;\n const byName = new Map(migrations.map((migration) => [migration.name, migration]));\n for (const [name, stored] of recorded) {\n if (stored.statementIndex < 0) {\n throw new VibeError({ code: \"VIBE_MIGRATION\", message: `Migration \"${name}\" is mid-rollback; finish or resolve it before applying`, meta: { reason: \"history-rolling-back\", migration: name, statementIndex: stored.statementIndex } });\n }\n const migration = byName.get(name);\n if (migration === undefined) {\n if (stored.error !== undefined) throw new VibeError({ code: \"VIBE_MIGRATION\", message: `Migration \"${name}\" has an unresolved journal error but no supplied file`, meta: { reason: \"history-unknown-dirty\", migration: name } });\n continue; // Intentional programmatic subsets remain supported.\n }\n if (isCompleteRecord({ dialect, migration, stored }) && stored.error !== undefined) throw new VibeError({ code: \"VIBE_MIGRATION\", message: `Migration \"${name}\" has an unresolved journal error`, meta: { reason: \"history-dirty\", migration: name } });\n if (isCompleteRecord({ dialect, migration, stored })) assertChecksumMatches({ migration, stored: stored.checksum });\n else assertResumable({ migration, stored });\n }\n for (const migration of migrations) {\n const stored = recorded.get(migration.name);\n if (stored === undefined || isCompleteRecord({ dialect, migration, stored })) continue;\n const start = stored.statementIndex;\n if (dialect === \"sqlite\" && usesSelfManagedTransactions({ sql: migration.sql })) {\n assertSupportedSelfManagedScript({ sql: migration.sql, migration: migration.name, direction: \"up\" });\n assertSelfManagedResumeSafe({ sql: migration.sql, start, migration: migration.name, direction: \"up\" });\n }\n if (!marksInflight({ dialect, execution: migration.execution }) || start >= migration.sql.length) continue;\n const operation = migration.execution?.transaction === \"none\" ? operationFor({ execution: migration.execution, statement: start }) : undefined;\n if (operation !== undefined) await establishOperationState({ executor, dialect, operation });\n else if (inflightStatement({ error: stored.error }) === start) throw uncertainStatement({ migration: migration.name, statements: migration.sql, index: start, dialect, direction: \"up\" });\n }\n}\n\n// ─── Quoting / placeholders ───────────────────────────────────────\n\nfunction q(dialect: Dialect, name: string): string {\n return getSqlDialect({ dialect }).quoteIdent({ name });\n}\n\nfunction ph(dialect: Dialect, index: number): string {\n return getSqlDialect({ dialect }).placeholder({ index });\n}\n",
|
|
38
38
|
"/**\n * Establishing what actually happened, before a nontransactional migration\n * re-runs anything.\n *\n * A migration that runs outside a transaction can die between a statement\n * committing and the journal recording it. The only honest recovery is to ask\n * the database what the world looks like now and compare it against the\n * statement's DECLARED postcondition (execution.ts). Three answers exist:\n *\n * - `\"satisfied\"` — the live catalog already matches the declaration. Skip it.\n * - `\"runnable\"` — the declaration is demonstrably not in effect, and running\n * the statement is the way to get there.\n * - a thrown `VibeError` — the state is neither, and no automatic action is\n * safe. Nothing is dropped, nothing is re-run: the operator decides.\n *\n * There is deliberately NO fourth answer of the form \"probably fine, re-run\n * it\". This module never claims exactly-once execution of arbitrary SQL; it\n * only decides the cases a declared postcondition can actually settle.\n *\n * Comparison is conservative by design. Expressions must match verbatim apart\n * from surrounding whitespace. Quotes and whitespace inside literals can change\n * meaning; any difference is a CONFLICT — a false conflict costs an operator one\n * look, a false match corrupts a schema.\n */\n\nimport { VibeError } from \"@vibeorm/schema\";\nimport type { Dialect } from \"@vibeorm/schema\";\nimport {\n getSqlDialect,\n renderColumnStateQuery,\n renderConstraintStateQuery,\n renderIndexStateQuery,\n renderRelationStateQuery,\n} from \"@vibeorm/sql\";\nimport { describeOperation } from \"./execution.ts\";\nimport type { MigrationOperation } from \"./execution.ts\";\nimport type { SqlExecutor } from \"./types.ts\";\n\n/** Name-only legacy metadata cannot establish a constraint's definition. */\nfunction constraintUnverifiable(params: {\n operation: Extract<MigrationOperation, { kind: \"addConstraintNotValid\" | \"validateConstraint\" }>;\n definition: unknown;\n}): VibeError {\n return conflict({\n reason: \"constraint-definition-unverifiable\",\n message: `Constraint \"${params.operation.constraint}\" on \"${params.operation.table}\" exists, but the migration declares no expected definition. Inspect its definition and resolve the interrupted statement before continuing.`,\n meta: { table: params.operation.table, constraint: params.operation.constraint, definition: params.definition },\n });\n}\n\n/** Whether a declared operation's postcondition already holds. */\nexport type OperationState = \"satisfied\" | \"runnable\";\n\nfunction conflict(params: { reason: string; message: string; meta?: Record<string, unknown> }): VibeError {\n return new VibeError({\n code: \"VIBE_MIGRATION\",\n message: params.message,\n meta: { reason: params.reason, ...params.meta },\n });\n}\n\n/** Driver booleans arrive as `true`, `\"t\"`, `1` or `\"true\"` depending on the adapter. */\nfunction truthy(value: unknown): boolean {\n if (typeof value === \"boolean\") return value;\n if (typeof value === \"number\") return value === 1;\n if (typeof value === \"string\") return value === \"t\" || value === \"true\" || value === \"1\";\n return false;\n}\n\n/** Preserve expression semantics; recovery must never guess equivalence. */\nfunction normalizeSql(value: string): string {\n return value.trim();\n}\n\nfunction sameShape(params: { live?: string | undefined; declared?: string | undefined }): boolean {\n const live = params.live === undefined || params.live === null ? \"\" : normalizeSql(params.live);\n const declared = params.declared === undefined ? \"\" : normalizeSql(params.declared);\n return live === declared;\n}\n\n/**\n * Ask the database whether a declared operation is already in effect.\n *\n * PostgreSQL only: it is the one dialect with a nontransactional migration\n * regime here, and every probe reads its catalogs.\n */\nexport async function establishOperationState(params: {\n executor: SqlExecutor;\n dialect: Dialect;\n operation: MigrationOperation;\n}): Promise<OperationState> {\n const { executor, operation } = params;\n const dialect = getSqlDialect({ dialect: params.dialect });\n const run = async (query: { text: string; values: readonly unknown[] }): Promise<Record<string, unknown>[]> =>\n executor({ text: query.text, values: [...query.values] });\n\n switch (operation.kind) {\n case \"createIndexConcurrently\": {\n const rows = await run(renderIndexStateQuery({ dialect, index: operation.index }));\n const row = rows[0];\n if (row === undefined) return \"runnable\";\n // An INVALID index is the signature failure of CREATE INDEX\n // CONCURRENTLY: it exists, the planner ignores it, and writes still\n // maintain it. IF NOT EXISTS would call this success. Dropping it is a\n // deliberate operator decision, never something recovery does silently.\n if (!truthy(row.valid) || !truthy(row.ready)) {\n throw conflict({\n reason: \"index-invalid\",\n message: `index \"${operation.index}\" exists but is INVALID — a previous CREATE INDEX CONCURRENTLY did not finish. Nothing is dropped automatically: inspect it, then \\`DROP INDEX CONCURRENTLY \"${operation.index}\"\\` and re-run this migration. Definition: ${String(row.definition)}`,\n meta: { index: operation.index, definition: row.definition },\n });\n }\n const mismatch =\n String(row.table) !== operation.table\n ? `table ${String(row.table)} ≠ ${operation.table}`\n : truthy(row.unique) !== operation.unique\n ? `unique ${String(truthy(row.unique))} ≠ ${String(operation.unique)}`\n : String(row.method) !== operation.method\n ? `method ${String(row.method)} ≠ ${operation.method}`\n : !sameShape({ live: row.columns === null || row.columns === undefined ? \"\" : String(row.columns).split(\"\\n\").join(\", \"), declared: operation.columns.join(\", \") })\n ? `columns (${String(row.columns).split(\"\\n\").join(\", \")}) ≠ (${operation.columns.join(\", \")})`\n : !sameShape({ live: row.predicate === null || row.predicate === undefined ? \"\" : String(row.predicate), ...(operation.where === undefined ? {} : { declared: operation.where }) })\n ? `predicate ${String(row.predicate)} ≠ ${String(operation.where)}`\n : undefined;\n if (mismatch !== undefined) {\n throw conflict({\n reason: \"index-definition-conflict\",\n message: `index \"${operation.index}\" already exists with a DIFFERENT definition (${mismatch}) — this is a name collision, not a completed step. Nothing is dropped automatically. Live definition: ${String(row.definition)}`,\n meta: { index: operation.index, definition: row.definition, declared: describeOperation({ operation }) },\n });\n }\n return \"satisfied\";\n }\n\n case \"dropIndexConcurrently\": {\n const rows = await run(renderIndexStateQuery({ dialect, index: operation.index }));\n // Absent = done. Present (valid or invalid) = the drop is what removes\n // it; DROP INDEX CONCURRENTLY is the sanctioned cleanup for an index\n // this operation is explicitly declared to remove.\n return rows[0] === undefined ? \"satisfied\" : \"runnable\";\n }\n\n case \"addConstraintNotValid\": {\n const rows = await run(renderConstraintStateQuery({ dialect, table: operation.table, constraint: operation.constraint }));\n if (rows[0] === undefined) return \"runnable\";\n throw constraintUnverifiable({ operation, definition: rows[0].definition });\n }\n\n case \"validateConstraint\": {\n const rows = await run(renderConstraintStateQuery({ dialect, table: operation.table, constraint: operation.constraint }));\n const row = rows[0];\n if (row === undefined) {\n throw conflict({\n reason: \"constraint-missing\",\n message: `constraint \"${operation.constraint}\" on \"${operation.table}\" does not exist, so it cannot be validated — the staged NOT VALID step it belongs to is not in effect`,\n meta: { table: operation.table, constraint: operation.constraint },\n });\n }\n throw constraintUnverifiable({ operation, definition: row.definition });\n }\n\n case \"renameTable\": {\n const before = await run(renderRelationStateQuery({ dialect, table: operation.from }));\n const after = await run(renderRelationStateQuery({ dialect, table: operation.to }));\n if (before.length === 0 && after.length === 1) return \"satisfied\";\n if (before.length === 1 && after.length === 0) return \"runnable\";\n throw conflict({\n reason: \"rename-ambiguous\",\n message: before.length === 0\n ? `neither \"${operation.from}\" nor \"${operation.to}\" exists — the rename cannot be completed or verified from here`\n : `both \"${operation.from}\" and \"${operation.to}\" exist — refusing to guess which one holds the data`,\n meta: { from: operation.from, to: operation.to },\n });\n }\n\n case \"renameColumn\": {\n const before = await run(renderColumnStateQuery({ dialect, table: operation.table, column: operation.from }));\n const after = await run(renderColumnStateQuery({ dialect, table: operation.table, column: operation.to }));\n if (before.length === 0 && after.length === 1) return \"satisfied\";\n if (before.length === 1 && after.length === 0) return \"runnable\";\n throw conflict({\n reason: \"rename-ambiguous\",\n message: before.length === 0\n ? `\"${operation.table}\" has neither column \"${operation.from}\" nor \"${operation.to}\" — the rename cannot be completed or verified from here`\n : `\"${operation.table}\" has BOTH \"${operation.from}\" and \"${operation.to}\" — refusing to guess which one holds the data`,\n meta: { table: operation.table, from: operation.from, to: operation.to },\n });\n }\n }\n}\n",
|
|
39
39
|
"/**\n * IR-vs-IR schema differ → dialect-neutral migration steps.\n *\n * The contract that matters most: `diffSchemas({ from: introspect(push(X)),\n * to: X })` is EMPTY — both sides normalize through normalize.ts before\n * comparison, so representation differences (implicit list sides vs explicit\n * M2M fields, `@unique` vs `@@unique`, app-level defaults, cascade-action\n * defaults) never produce phantom steps and `db push` twice is a no-op.\n *\n * No rename detection (v1 parity): a renamed table/column diffs as drop +\n * create. Removing a value from a surviving enum throws\n * VIBE_UNSUPPORTED_CAPABILITY — postgres cannot drop enum values without a\n * manual type rebuild, and silence would be dialect dishonesty.\n */\n\nimport { isEnumType, unsupportedCapability } from \"@vibeorm/schema\";\nimport { VibeError } from \"@vibeorm/schema\";\nimport type { Dialect, EnumIR, SchemaIR } from \"@vibeorm/schema\";\nimport { assertEnumStringTransition, isEnumStringTransition, resolveEnumValues } from \"./enum-values.ts\";\nimport { assertStringEnumLabelsFit, normalizeSchema } from \"./normalize.ts\";\nimport type { NormalizedSchema, NormalizedTable } from \"./normalize.ts\";\nimport { isScalarToArrayChange } from \"./postgres-types.ts\";\nimport { assertRlsDialect, withRlsSteps } from \"./ddl/rls.ts\";\nimport { planRenames } from \"./renames.ts\";\nimport type { RenameIntent } from \"./renames.ts\";\nimport type { AlterColumnAspect, MigrationStep } from \"./types.ts\";\n\n// ─── Ordered step buckets ─────────────────────────────────────────\n\n/**\n * Steps are emitted in dependency-safe buckets: view drops first of all (a\n * leftover view blocks dropping any column it references — postgres 2BP01,\n * board #26), enums next (columns reference the types), FK/index drops before\n * the objects they attach to disappear, table creates before the\n * FKs/indexes/join tables that need them, enum drops last (after every column\n * using the type is gone).\n */\ntype StepBuckets = {\n dropExclusion: MigrationStep[];\n addExclusion: MigrationStep[];\n dropView: MigrationStep[];\n createEnum: MigrationStep[];\n addEnumValue: MigrationStep[];\n dropForeignKey: MigrationStep[];\n dropIndex: MigrationStep[];\n dropJoinTable: MigrationStep[];\n dropTable: MigrationStep[];\n createTable: MigrationStep[];\n addColumn: MigrationStep[];\n alterColumn: MigrationStep[];\n dropColumn: MigrationStep[];\n dropPrimaryKey: MigrationStep[];\n addPrimaryKey: MigrationStep[];\n dropCheck: MigrationStep[];\n addCheck: MigrationStep[];\n createIndex: MigrationStep[];\n addForeignKey: MigrationStep[];\n createJoinTable: MigrationStep[];\n dropEnum: MigrationStep[];\n};\n\n// ─── Public API ───────────────────────────────────────────────────\n\n/**\n * Diff two Schema IRs into an ordered list of dialect-neutral migration steps\n * that transform the `from` database shape into the `to` shape.\n *\n * `dialect` (default postgres) selects the comparison rules: sqlite/mysql\n * compare columns by physical type (see normalize.ts), refuse scalar-list\n * columns up front (no array types — VIBE_UNSUPPORTED_CAPABILITY naming the\n * model.field), skip standalone enum steps (their enums are inline: TEXT +\n * CHECK on sqlite, `ENUM(…)` on mysql — value changes flow through\n * `alterColumn`), and refuse enum-value REMOVAL at the column level.\n */\nexport function diffSchemas(params: {\n from: SchemaIR;\n to: SchemaIR;\n dialect?: Dialect;\n /**\n * EXPLICIT physical renames, written down by whoever wants them (renames.ts).\n * Applied to the source schema before the diff runs, so a renamed table or\n * column produces a rename step instead of the drop/create pair the differ\n * would otherwise — correctly — derive. Nothing here is ever inferred.\n */\n renames?: readonly RenameIntent[];\n}): MigrationStep[] {\n const dialect = params.dialect ?? \"postgres\";\n for (const schema of [params.from, params.to]) if (dialect !== \"postgres\" && schema.models.some((model) => (model.exclusions?.length ?? 0) > 0)) throw unsupportedCapability({ dialect, feature: \"exclusionConstraints\" });\n assertRlsDialect({ schema: params.from, dialect });\n assertRlsDialect({ schema: params.to, dialect });\n if (dialect !== \"postgres\") refuseScalarListColumns({ schema: params.to, dialect });\n\n const renamed = planRenames({ from: params.from, to: params.to, renames: params.renames ?? [], dialect });\n params = { ...params, from: renamed.from };\n\n const from = normalizeSchema({ schema: params.from, dialect });\n const to = normalizeSchema({ schema: params.to, dialect });\n\n const buckets: StepBuckets = {\n dropExclusion: [],\n addExclusion: [],\n dropView: [],\n createEnum: [],\n addEnumValue: [],\n dropForeignKey: [],\n dropIndex: [],\n dropJoinTable: [],\n dropTable: [],\n createTable: [],\n addColumn: [],\n alterColumn: [],\n dropColumn: [],\n dropPrimaryKey: [],\n addPrimaryKey: [],\n dropCheck: [],\n addCheck: [],\n createIndex: [],\n addForeignKey: [],\n createJoinTable: [],\n dropEnum: [],\n };\n\n // Standalone enum objects only exist on postgres (CREATE TYPE); sqlite and\n // mysql inline their enums into the columns, so value changes surface as\n // alterColumn steps via the value-based type keys instead.\n if (dialect === \"postgres\") diffEnums({ from, to, buckets });\n diffViews({ from, to, buckets });\n diffJoinTables({ from, to, buckets });\n diffTables({ from, to, buckets, dialect });\n for (const model of params.to.models) {\n const table = model.dbName ?? model.name;\n const previous = params.from.models.find((entry) => (entry.dbName ?? entry.name) === table);\n for (const exclusion of model.exclusions ?? []) {\n const before = previous?.exclusions?.find((entry) => entry.name === exclusion.name);\n if (before?.definition === exclusion.definition) continue;\n if (before?.catalogDefinition) throw new VibeError({ code: \"VIBE_MIGRATION\", message: \"Exclusion comparison requires normalized evidence\", meta: { reason: \"exclusion-inspection-unavailable\", table, name: exclusion.name } });\n if (before !== undefined) buckets.dropExclusion.push({ kind: \"dropExclusion\", table, exclusion: before, destructive: false });\n buckets.addExclusion.push({ kind: \"addExclusion\", table, exclusion, destructive: false });\n }\n for (const exclusion of previous?.exclusions ?? []) if (!model.exclusions?.some((entry) => entry.name === exclusion.name)) buckets.dropExclusion.push({ kind: \"dropExclusion\", table, exclusion, destructive: false });\n }\n refuseDependentEnumStorageChanges({ from, to, buckets, dialect });\n\n return withRlsSteps({ from: params.from, to: params.to, steps: [\n // Renames run FIRST: every later step (and the normalized comparison\n // above) already refers to the objects by their new physical names.\n ...renamed.steps,\n ...buckets.dropView,\n ...buckets.createEnum,\n ...buckets.addEnumValue,\n ...buckets.dropForeignKey,\n ...buckets.dropExclusion,\n ...buckets.dropIndex,\n ...buckets.dropCheck,\n ...buckets.dropPrimaryKey,\n ...buckets.dropJoinTable,\n ...buckets.dropTable,\n ...buckets.createTable,\n ...buckets.addColumn,\n ...buckets.alterColumn,\n ...buckets.dropColumn,\n ...buckets.addPrimaryKey,\n ...buckets.addCheck,\n ...buckets.addExclusion,\n ...buckets.createIndex,\n ...buckets.addForeignKey,\n ...buckets.createJoinTable,\n ...buckets.dropEnum,\n ] });\n}\n\n// ─── Enums ────────────────────────────────────────────────────────\n\ntype NormalizedPair = {\n from: NormalizedSchema;\n to: NormalizedSchema;\n buckets: StepBuckets;\n};\n\n// ─── Capability guards ────────────────────────────────────────────\n\n/** sqlite/mysql have no array columns — refuse every scalar-list field loudly. */\nfunction refuseScalarListColumns(params: { schema: SchemaIR; dialect: Dialect }): void {\n const { schema, dialect } = params;\n for (const model of schema.models) {\n if (model.isView) continue;\n for (const field of model.fields) {\n if (!field.isList || field.isUnsupported === true) continue;\n throw unsupportedCapability({\n dialect,\n feature: `scalar list column \"${model.name}.${field.name}\"`,\n hint: `${dialect} has no array column type — model the list as a separate table or a ${\n dialect === \"mysql\" ? \"JSON\" : \"Json\"\n } column`,\n });\n }\n }\n}\n\nfunction diffEnums(params: NormalizedPair): void {\n const { from, to, buckets } = params;\n\n for (const [name, enumDef] of to.enums) {\n const previous = from.enums.get(name);\n if (previous === undefined) {\n buckets.createEnum.push({ kind: \"createEnum\", enumDef, destructive: false });\n continue;\n }\n\n const previousValues = new Set(previous.values);\n const currentValues = new Set(enumDef.values);\n for (const value of enumDef.values) {\n if (!previousValues.has(value)) {\n buckets.addEnumValue.push({ kind: \"addEnumValue\", enumName: name, value, destructive: false });\n }\n }\n for (const value of previous.values) {\n if (!currentValues.has(value)) {\n throw unsupportedCapability({\n dialect: \"postgres\",\n feature: `removing value \"${value}\" from enum \"${name}\"`,\n hint: \"postgres cannot drop enum values — recreate the type manually (create new type, ALTER COLUMN ... USING, drop old type)\",\n });\n }\n }\n }\n\n for (const [name] of from.enums) {\n if (!to.enums.has(name)) {\n buckets.dropEnum.push({ kind: \"dropEnum\", enumName: name, destructive: true });\n }\n }\n}\n\n/** Existing FK/join dependencies need a coordinated migration, not isolated ALTERs. */\nfunction refuseDependentEnumStorageChanges(params: NormalizedPair & { dialect: Dialect }): void {\n const { from, to, buckets, dialect } = params;\n for (const step of buckets.alterColumn) {\n if (step.kind !== \"alterColumn\" || !isEnumStringTransition({ from: step.from, to: step.to })) continue;\n for (const normalized of [from, to]) {\n const hasFk = [...normalized.tables.values()].some((table) => [...table.fks.values()].some((fk) =>\n (table.table === step.table && fk.columns.includes(step.column)) ||\n (fk.refTable === step.table && fk.refColumns.includes(step.column)),\n ));\n const hasJoin = [...normalized.joinTables.values()].some((join) => [join.a, join.b].some((end) =>\n end.table === step.table && end.column === step.column,\n ));\n if (hasFk || hasJoin) {\n throw unsupportedCapability({\n dialect,\n feature: `enum storage conversion on \"${step.table}\".\"${step.column}\" with foreign-key dependencies`,\n hint: \"migrate the referencing columns and constraints together in a reviewed manual migration\",\n });\n }\n }\n }\n}\n\n// ─── Views (#26) ──────────────────────────────────────────\n\n/**\n * A view in `from` the target no longer declares gets a `dropView` step — a\n * leftover view otherwise blocks the column drops beneath it (postgres 2BP01)\n * and `push` fails on a schema the user considers valid. Views only in `to`\n * emit nothing: view CREATION stays out-of-band in this wave (see #11), and\n * whatever design lands there must keep this drop rule.\n */\nfunction diffViews(params: NormalizedPair): void {\n const { from, to, buckets } = params;\n for (const [name] of from.views) {\n if (!to.views.has(name)) {\n buckets.dropView.push({ kind: \"dropView\", table: name, destructive: true });\n }\n }\n}\n\n// ─── Join tables ──────────────────────────────────────────────────\n\nfunction diffJoinTables(params: NormalizedPair): void {\n const { from, to, buckets } = params;\n\n for (const [table, joinTable] of to.joinTables) {\n if (!from.joinTables.has(table)) {\n buckets.createJoinTable.push({\n kind: \"createJoinTable\",\n table,\n a: joinTable.a,\n b: joinTable.b,\n destructive: false,\n });\n }\n }\n for (const [table] of from.joinTables) {\n if (!to.joinTables.has(table)) {\n buckets.dropJoinTable.push({ kind: \"dropJoinTable\", table, destructive: true });\n }\n }\n}\n\n// ─── Tables ───────────────────────────────────────────────────────\n\nfunction diffTables(params: NormalizedPair & { dialect: Dialect }): void {\n const { from, to, buckets, dialect } = params;\n\n for (const [name, table] of to.tables) {\n const previous = from.tables.get(name);\n if (previous === undefined) createWholeTable({ table, buckets });\n else\n diffOneTable({\n previous,\n current: table,\n buckets,\n dialect,\n fromEnums: from.enums,\n toEnums: to.enums,\n });\n }\n\n // PostgreSQL/MySQL drops are RESTRICT, not CASCADE. Remove outgoing edges\n // explicitly, including cycles inside a removed group. SQLite instead orders\n // child drops and must not rebuild a table that is itself being removed.\n for (const [name, table] of from.tables) {\n if (to.tables.has(name)) continue;\n if (dialect !== \"sqlite\") for (const fk of table.fks.values()) {\n buckets.dropForeignKey.push({ kind: \"dropForeignKey\", table: name, constraintName: fk.constraintName, destructive: false });\n }\n buckets.dropTable.push({ kind: \"dropTable\", table: name, destructive: true });\n }\n}\n\nfunction createWholeTable(params: { table: NormalizedTable; buckets: StepBuckets }): void {\n const { table, buckets } = params;\n\n buckets.createTable.push({\n kind: \"createTable\",\n table: table.table,\n columns: [...table.columns.values()].map((column) => column.field),\n primaryKey: table.pk,\n ...(table.model.primaryKeyConstraintName === undefined ? {} : { primaryKeyConstraintName: table.model.primaryKeyConstraintName }),\n checks: [...table.checks].map(([name, expression]) => ({ name, expression })),\n destructive: false,\n });\n\n for (const index of table.indexes.values()) {\n buckets.createIndex.push({\n kind: \"createIndex\",\n table: table.table,\n name: index.name,\n indexKind: index.kind,\n unique: index.unique,\n columns: index.columns,\n ...(index.where === undefined ? {} : { where: index.where }),\n ...(index.nullsNotDistinct === true ? { nullsNotDistinct: true } : {}),\n destructive: false,\n });\n }\n\n for (const fk of table.fks.values()) {\n buckets.addForeignKey.push({\n kind: \"addForeignKey\",\n table: table.table,\n constraintName: fk.constraintName,\n columns: fk.columns,\n refTable: fk.refTable,\n refColumns: fk.refColumns,\n onDelete: fk.onDelete,\n onUpdate: fk.onUpdate,\n destructive: false,\n });\n }\n}\n\nfunction diffOneTable(params: {\n previous: NormalizedTable;\n current: NormalizedTable;\n buckets: StepBuckets;\n dialect: Dialect;\n fromEnums: ReadonlyMap<string, EnumIR>;\n toEnums: ReadonlyMap<string, EnumIR>;\n}): void {\n const { previous, current, buckets, dialect, fromEnums, toEnums } = params;\n const table = current.table;\n\n // Columns.\n for (const [name, column] of current.columns) {\n const before = previous.columns.get(name);\n if (before === undefined) {\n buckets.addColumn.push({ kind: \"addColumn\", table, column: column.field, destructive: false });\n continue;\n }\n\n const changes: AlterColumnAspect[] = [];\n if (before.typeKey !== column.typeKey) changes.push(\"type\");\n if (before.nullable !== column.nullable) changes.push(\"nullability\");\n if (before.defaultKey !== column.defaultKey) changes.push(\"default\");\n // An omitted declaration leaves the physical collation unchanged. Explicit\n // declarations are compared with catalog truth, not with a guessed default.\n const collationChanged = dialect === \"mysql\" && column.field.collation !== undefined &&\n before.field.collation?.toLowerCase() !== column.field.collation.toLowerCase();\n if (collationChanged) changes.push(\"collation\");\n if (changes.length === 0) continue;\n if (changes.includes(\"type\") && [...previous.checks].some(([name, expression]) => current.checks.get(name) === expression)) {\n throw unsupportedCapability({ dialect, feature: \"alterColumnWithRetainedCheck\", hint: \"CHECK dependencies and type compatibility are not proven; use a reviewed migration that replaces and revalidates the affected constraints\" });\n }\n\n const storageChange = isEnumStringTransition({ from: before.field, to: column.field });\n if (storageChange) {\n assertEnumStringTransition({ from: before.field, to: column.field, dialect, table, column: name });\n if (isEnumType(before.field.type) && column.field.type === \"String\") {\n const values = resolveEnumValues({ name: before.field.type.enum, enums: fromEnums });\n if (values !== undefined) assertStringEnumLabelsFit({ field: column.field, values, dialect, table });\n }\n }\n let narrowingType =\n changes.includes(\"type\") &&\n !isScalarToArrayChange({ from: before.field, to: column.field }) &&\n !(storageChange && column.field.type === \"String\");\n\n // Inline-enum dialects: an enum→enum type change is a value-list change.\n // Pure widening (values only added) is safe and non-destructive; REMOVING\n // a value is refused outright — existing rows may hold it, and silence\n // would be dialect dishonesty.\n if (\n dialect !== \"postgres\" &&\n changes.includes(\"type\") &&\n isEnumType(before.field.type) &&\n isEnumType(column.field.type)\n ) {\n const fromValues = resolveEnumValues({ name: before.field.type.enum, enums: fromEnums });\n const toValues = resolveEnumValues({ name: column.field.type.enum, enums: toEnums });\n if (fromValues !== undefined && toValues !== undefined) {\n const removed = fromValues.filter((value) => !toValues.includes(value));\n if (removed.length > 0) {\n throw unsupportedCapability({\n dialect,\n feature: `removing value(s) ${removed.map((value) => `\"${value}\"`).join(\", \")} from enum column \"${table}\".\"${name}\"`,\n hint: \"migrate the stored values away first, then recreate the column with the narrower enum\",\n });\n }\n narrowingType = false; // Pure widening — no data can be lost.\n }\n }\n\n buckets.alterColumn.push({\n kind: \"alterColumn\",\n table,\n column: name,\n from: before.field,\n to: column.field,\n changes,\n destructive: narrowingType || collationChanged,\n });\n }\n\n for (const [name] of previous.columns) {\n if (!current.columns.has(name)) {\n buckets.dropColumn.push({ kind: \"dropColumn\", table, column: name, destructive: true });\n }\n }\n\n // Primary key.\n const pkBefore = previous.pk.join(\",\");\n const pkAfter = current.pk.join(\",\");\n if (pkBefore !== pkAfter) {\n if (previous.pk.length > 0) {\n buckets.dropPrimaryKey.push({ kind: \"dropPrimaryKey\", table, destructive: false, ...(previous.model.primaryKeyConstraintName === undefined ? {} : { constraintName: previous.model.primaryKeyConstraintName }) });\n }\n if (current.pk.length > 0) {\n buckets.addPrimaryKey.push({\n kind: \"addPrimaryKey\",\n table,\n columns: current.pk,\n ...(current.model.primaryKeyConstraintName === undefined ? {} : { constraintName: current.model.primaryKeyConstraintName }),\n destructive: false,\n });\n }\n }\n\n // Authored expression changes replace the named constraint. Live callers\n // must establish expression equivalence before passing catalog IR here.\n for (const [name, expression] of current.checks) {\n const before = previous.checks.get(name);\n if (before === expression) continue;\n if (before !== undefined && previous.model.checks?.some((check) => check.name === name && check.catalogExpression === true)) throw new VibeError({ code: \"VIBE_MIGRATION\", message: \"Unequal catalog CHECK text requires normalized evidence or explicit replacement through the live planner\", meta: { reason: \"check-inspection-unavailable\", table, name } });\n if (before !== undefined) buckets.dropCheck.push({ kind: \"dropCheck\", table, name, destructive: false });\n buckets.addCheck.push({ kind: \"addCheck\", table, name, expression, destructive: false });\n }\n for (const [name] of previous.checks) {\n if (current.checks.has(name)) continue;\n buckets.dropCheck.push({ kind: \"dropCheck\", table, name, destructive: false });\n }\n\n // Indexes (uniques included — normalize.ts already merged @unique fields in).\n for (const [key, index] of current.indexes) {\n if (previous.indexes.has(key)) continue;\n buckets.createIndex.push({\n kind: \"createIndex\",\n table,\n name: index.name,\n indexKind: index.kind,\n unique: index.unique,\n columns: index.columns,\n ...(index.where === undefined ? {} : { where: index.where }),\n ...(index.nullsNotDistinct === true ? { nullsNotDistinct: true } : {}),\n destructive: false,\n });\n }\n for (const [key, index] of previous.indexes) {\n if (current.indexes.has(key)) continue;\n buckets.dropIndex.push({ kind: \"dropIndex\", name: index.name, table, destructive: false, ...(index.constraintName === undefined ? {} : { constraintName: index.constraintName }) });\n }\n\n // Foreign keys. Cascade-action drift needs DROP + ADD — postgres has no\n // ALTER CONSTRAINT ... ON DELETE for FKs (LEARNINGS).\n for (const [key, fk] of current.fks) {\n const before = previous.fks.get(key);\n if (before === undefined) {\n buckets.addForeignKey.push({\n kind: \"addForeignKey\",\n table,\n constraintName: fk.constraintName,\n columns: fk.columns,\n refTable: fk.refTable,\n refColumns: fk.refColumns,\n onDelete: fk.onDelete,\n onUpdate: fk.onUpdate,\n destructive: false,\n });\n continue;\n }\n if (before.onDelete !== fk.onDelete || before.onUpdate !== fk.onUpdate) {\n buckets.dropForeignKey.push({\n kind: \"dropForeignKey\",\n table,\n constraintName: before.constraintName,\n destructive: false,\n });\n buckets.addForeignKey.push({\n kind: \"addForeignKey\",\n table,\n constraintName: fk.constraintName,\n columns: fk.columns,\n refTable: fk.refTable,\n refColumns: fk.refColumns,\n onDelete: fk.onDelete,\n onUpdate: fk.onUpdate,\n destructive: false,\n });\n }\n }\n for (const [key, fk] of previous.fks) {\n if (current.fks.has(key)) continue;\n buckets.dropForeignKey.push({\n kind: \"dropForeignKey\",\n table,\n constraintName: fk.constraintName,\n destructive: false,\n });\n }\n}\n",
|
|
40
40
|
"/**\n * EXPLICIT physical renames.\n *\n * The differ deliberately has no rename detection: two schemas that differ by\n * a name are indistinguishable from a drop plus a create, and guessing between\n * them from \"similar shapes\" is how a migration tool silently destroys a\n * column. A rename therefore only ever happens because someone WROTE one down,\n * as an old physical name and a new physical name, and it is validated against\n * both schemas before a single statement is rendered.\n *\n * `@map` / `@@map` remains the no-DDL option: mapping a model or field to the\n * name the database already uses changes generated code only. Use a rename\n * intent when the DATABASE object must actually move.\n *\n * What a physical rename preserves, on every dialect that supports it: the\n * rows, the column defaults, the indexes and constraints attached to the\n * object, and inbound foreign keys — the object keeps its identity, only its\n * name changes. PostgreSQL policy expressions follow the rename too, because\n * they are stored parsed and reference the object by identity, not by text.\n *\n * What refuses instead of guessing: renaming a table and one of its columns in\n * the same plan (the second intent's table name is then ambiguous), an intent\n * whose endpoints do not both check out against the two schemas, and two\n * intents pointing at the same object.\n */\n\nimport { VibeError } from \"@vibeorm/schema\";\nimport type { Dialect, ModelIR, SchemaIR } from \"@vibeorm/schema\";\nimport type { MigrationStep } from \"./types.ts\";\n\n/** One deliberately written rename, in PHYSICAL (database) names. */\nexport type RenameIntent =\n | { readonly kind: \"table\"; readonly from: string; readonly to: string }\n | { readonly kind: \"column\"; readonly table: string; readonly from: string; readonly to: string };\n\n/** Physical table name of a model. */\nfunction tableOf(model: ModelIR): string {\n return model.dbName ?? model.name;\n}\n\nfunction findTable(params: { schema: SchemaIR; table: string }): ModelIR | undefined {\n return params.schema.models.find((model) => !model.isView && tableOf(model) === params.table);\n}\n\nfunction hasColumn(params: { model: ModelIR; column: string }): boolean {\n return params.model.fields.some((field) => (field.dbName ?? field.name) === params.column);\n}\n\nfunction ambiguous(params: { detail: string; meta: Record<string, unknown> }): VibeError {\n return new VibeError({\n code: \"VIBE_MIGRATION\",\n message: `rename refused: ${params.detail}`,\n meta: { reason: \"rename-ambiguous\", ...params.meta },\n });\n}\n\n/**\n * Validate rename intents against the two schemas and turn them into steps,\n * returning the SOURCE schema rewritten as if the renames had happened.\n *\n * The rewrite is what keeps the rest of the diff honest: once the source model\n * carries the new physical name, the ordinary differ sees one table on both\n * sides and emits no drop/create pair for it. Only `dbName` moves — the\n * logical IR graph (relations, index field lists) is untouched, so nothing\n * downstream has to know a rename happened.\n */\nexport function planRenames(params: {\n from: SchemaIR;\n to: SchemaIR;\n renames: readonly RenameIntent[];\n dialect: Dialect;\n}): { readonly steps: readonly MigrationStep[]; readonly from: SchemaIR } {\n const { to, dialect } = params;\n if (params.renames.length === 0) return { steps: [], from: params.from };\n\n const renamedTables = new Map<string, string>();\n const renamedColumns = new Map<string, Map<string, string>>();\n const steps: MigrationStep[] = [];\n\n for (const intent of params.renames) {\n if (intent.kind === \"table\") {\n if (intent.from === intent.to) {\n throw ambiguous({ detail: `table \"${intent.from}\" renames to itself`, meta: { dialect, from: intent.from } });\n }\n if (renamedTables.has(intent.from) || [...renamedTables.values()].includes(intent.to)) {\n throw ambiguous({ detail: `table \"${intent.from}\" or \"${intent.to}\" appears in more than one rename`, meta: { dialect, from: intent.from, to: intent.to } });\n }\n const source = findTable({ schema: params.from, table: intent.from });\n if (source === undefined) {\n throw ambiguous({ detail: `the current database has no table \"${intent.from}\" to rename`, meta: { dialect, from: intent.from, to: intent.to } });\n }\n if (findTable({ schema: params.from, table: intent.to }) !== undefined) {\n throw ambiguous({ detail: `the current database already has a table named \"${intent.to}\"`, meta: { dialect, from: intent.from, to: intent.to } });\n }\n if (findTable({ schema: to, table: intent.to }) === undefined) {\n throw ambiguous({ detail: `the target schema has no table \"${intent.to}\" — a rename must name a table that exists on BOTH sides`, meta: { dialect, from: intent.from, to: intent.to } });\n }\n if (findTable({ schema: to, table: intent.from }) !== undefined) {\n throw ambiguous({ detail: `the target schema still has a table \"${intent.from}\", so this is not a rename`, meta: { dialect, from: intent.from, to: intent.to } });\n }\n renamedTables.set(intent.from, intent.to);\n steps.push({ kind: \"renameTable\", from: intent.from, to: intent.to, destructive: false });\n continue;\n }\n\n if (intent.from === intent.to) {\n throw ambiguous({ detail: `column \"${intent.table}\".\"${intent.from}\" renames to itself`, meta: { dialect, table: intent.table } });\n }\n if (renamedTables.has(intent.table) || [...renamedTables.values()].includes(intent.table)) {\n throw ambiguous({\n detail: `\"${intent.table}\" is renamed in the same plan, so a column rename on it is ambiguous — split the table rename and the column rename into two migrations`,\n meta: { dialect, table: intent.table, from: intent.from, to: intent.to },\n });\n }\n const sourceTable = findTable({ schema: params.from, table: intent.table });\n const targetTable = findTable({ schema: to, table: intent.table });\n if (sourceTable === undefined || targetTable === undefined) {\n throw ambiguous({ detail: `table \"${intent.table}\" must exist in both the current database and the target schema to rename one of its columns`, meta: { dialect, table: intent.table } });\n }\n const columns = renamedColumns.get(intent.table) ?? new Map<string, string>();\n if (columns.has(intent.from) || [...columns.values()].includes(intent.to)) {\n throw ambiguous({ detail: `column \"${intent.table}\".\"${intent.from}\" or \"${intent.to}\" appears in more than one rename`, meta: { dialect, table: intent.table } });\n }\n if (!hasColumn({ model: sourceTable, column: intent.from })) {\n throw ambiguous({ detail: `the current database has no column \"${intent.table}\".\"${intent.from}\" to rename`, meta: { dialect, table: intent.table, from: intent.from } });\n }\n if (hasColumn({ model: sourceTable, column: intent.to })) {\n throw ambiguous({ detail: `the current database already has a column \"${intent.table}\".\"${intent.to}\"`, meta: { dialect, table: intent.table, to: intent.to } });\n }\n if (!hasColumn({ model: targetTable, column: intent.to })) {\n throw ambiguous({ detail: `the target schema has no column \"${intent.table}\".\"${intent.to}\" — a rename must name a column that exists on BOTH sides`, meta: { dialect, table: intent.table, to: intent.to } });\n }\n if (hasColumn({ model: targetTable, column: intent.from })) {\n throw ambiguous({ detail: `the target schema still has a column \"${intent.table}\".\"${intent.from}\", so this is not a rename`, meta: { dialect, table: intent.table, from: intent.from } });\n }\n columns.set(intent.from, intent.to);\n renamedColumns.set(intent.table, columns);\n steps.push({ kind: \"renameColumn\", table: intent.table, from: intent.from, to: intent.to, destructive: false });\n }\n\n const rewritten: SchemaIR = {\n ...params.from,\n models: params.from.models.map((model) => {\n const table = tableOf(model);\n const columns = renamedColumns.get(table);\n const newTable = renamedTables.get(table);\n if (columns === undefined && newTable === undefined) return model;\n return {\n ...model,\n ...(newTable === undefined ? {} : { dbName: newTable }),\n ...(columns === undefined\n ? {}\n : {\n fields: model.fields.map((field) => {\n const renamed = columns.get(field.dbName ?? field.name);\n return renamed === undefined ? field : { ...field, dbName: renamed };\n }),\n }),\n };\n }),\n };\n\n // Table renames first: a column rename on a renamed table is refused above,\n // so the two groups never interact, but keeping the order explicit makes the\n // rendered SQL read the way an operator expects.\n return {\n steps: [...steps.filter((step) => step.kind === \"renameTable\"), ...steps.filter((step) => step.kind === \"renameColumn\")],\n from: rewritten,\n };\n}\n",
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
"/**\n * Topological ordering for DROP TABLE statements — children (referencing\n * tables) first.\n *\n * postgres never needs this: `DROP TABLE … CASCADE` takes inbound FK\n * constraints with it. sqlite and mysql have no working cascade for inbound\n * foreign keys — mysql refuses outright (errno 3730\n * `ER_FK_CANNOT_DROP_PARENT`, observed live on 8.4 when a fixture switch\n * dropped `Project` while the also-being-dropped `ProjectMember` still\n * referenced it). ONE shared implementation, consumed by both renderers —\n * the LEARNINGS rule: a structural rule is never re-implemented per consumer.\n */\n\nimport type { NormalizedSchema } from \"../normalize.ts\";\n\n/**\n * Order the tables in `names` so that no table is dropped while another\n * to-be-dropped table still references it. Tables unknown to `fromNorm` (or a\n * missing `fromNorm`, or a reference cycle) fall back to the given order —\n * rendering proceeds and the server reports what it cannot do (dialect\n * honesty beats silently dropping statements).\n */\nexport function orderDropsChildrenFirst(params: {\n names: readonly string[];\n fromNorm: NormalizedSchema | undefined;\n}): string[] {\n const { names, fromNorm } = params;\n if (fromNorm === undefined || names.length < 2) return [...names];\n\n const references = new Map<string, ReadonlySet<string>>();\n for (const name of names) {\n const table = fromNorm.tables.get(name);\n if (table !== undefined) {\n references.set(name, new Set([...table.fks.values()].map((fk) => fk.refTable)));\n continue;\n }\n const joinTable = fromNorm.joinTables.get(name);\n if (joinTable !== undefined) {\n references.set(name, new Set([joinTable.a.table, joinTable.b.table]));\n continue;\n }\n references.set(name, new Set());\n }\n\n const remaining = new Set(names);\n const result: string[] = [];\n while (remaining.size > 0) {\n let progressed = false;\n for (const name of names) {\n if (!remaining.has(name)) continue;\n const stillReferenced = [...remaining].some(\n (other) => other !== name && (references.get(other) ?? new Set()).has(name),\n );\n if (!stillReferenced) {\n result.push(name);\n remaining.delete(name);\n progressed = true;\n }\n }\n if (!progressed) {\n for (const name of names) if (remaining.has(name)) result.push(name);\n break;\n }\n }\n return result;\n}\n",
|
|
45
45
|
"/**\n * Public types of @vibeorm/migrate: the executor contract, the dialect-neutral\n * migration step model, and the runner's file/result shapes.\n *\n * Steps carry Schema-IR fragments (FieldIR, EnumIR) — never SQL text. SQL is\n * produced exclusively by the per-dialect renderers (ddl-postgres.ts), so every\n * SQL-text decision stays reviewable in one place (constitution rule 3/4).\n */\n\nimport type { CascadeAction, CheckIR, Dialect, EnumIR, FieldIR, SchemaIR } from \"@vibeorm/schema\";\nimport type { ExclusionIR } from \"@vibeorm/schema\";\nimport type { MigrationExecution } from \"./execution.ts\";\nimport type { DesiredState, MigrationDesiredState } from \"./desired-state.ts\";\nimport type { MigrationObjectState } from \"./inspect-objects.ts\";\nimport type { SqlObjectIdentity } from \"@vibeorm/schema\";\n\n// ─── Executor ─────────────────────────────────────────────────────\n\n/**\n * Minimal SQL execution contract the migrate engine runs on. Structurally\n * identical to @vibeorm/runtime's `SqlExecutor` (its `toSqlExecutor` bridges a\n * DatabaseAdapter to this shape) — declared here so the dependency direction\n * stays schema ← sql ← migrate.\n *\n * SESSION AFFINITY: the migrate engine issues session-scoped statements\n * through this contract (BEGIN/COMMIT, `PRAGMA foreign_keys`, advisory locks\n * `pg_advisory_lock` / `GET_LOCK`), so every call MUST hit the same database\n * session. Single-connection adapters (pglite, sqlite) satisfy this by\n * construction; pool-backed executors must pin one connection for the whole\n * migrate operation.\n */\nexport type SqlExecutor = ((params: {\n text: string;\n values?: unknown[];\n}) => Promise<Record<string, unknown>[]>) & {\n /** Reserve one session before lock acquisition; its callback receives a pinned executor. */\n readonly withSession?: <T>(params: { run: (executor: SqlExecutor) => Promise<T> }) => Promise<T>;\n};\n\n// ─── Step building blocks ─────────────────────────────────────────\n\n/** Which aspects of a column an `alterColumn` step changes. */\nexport type AlterColumnAspect = \"type\" | \"nullability\" | \"default\" | \"collation\";\n\n/** One column of an index, with its sort direction. */\nexport type IndexColumn = {\n readonly name: string;\n readonly desc: boolean;\n /**\n * The field is a Decimal (SQLITE-2, SQL review round 2). Inert everywhere\n * except the sqlite DDL renderer: Decimal stores as TEXT there and every\n * compare/order site reads `CAST(col AS REAL)` (B4), which a plain-column\n * index can never serve (EQP-proven SCAN) — sqlite renders an EXPRESSION\n * index over the same cast instead. Not part of the index comparison key:\n * both sides compare by column name + direction.\n */\n readonly decimal?: boolean;\n};\n\n/** One side of an implicit many-to-many join table. */\nexport type JoinTableEnd = {\n /** Referenced table (db name). */\n readonly table: string;\n /** Referenced primary-key column (db name). */\n readonly column: string;\n /** The referenced primary-key field — its type renders the join column's type. */\n readonly field: FieldIR;\n};\n\n// ─── Steps ────────────────────────────────────────────────────────\n\n/**\n * A dialect-neutral migration step produced by `diffSchemas`. `destructive`\n * marks steps that can lose data (dropTable / dropJoinTable / dropColumn /\n * dropEnum / narrowing type changes) — `push` refuses them without\n * `acceptDataLoss`, and `generateMigration` surfaces the flag.\n */\nexport type MigrationStep = (\n | { readonly kind: \"addExclusion\" | \"dropExclusion\"; readonly table: string; readonly exclusion: ExclusionIR; readonly destructive: false }\n | {\n readonly kind: \"enableRls\" | \"forceRls\" | \"disableRls\" | \"noForceRls\" | \"dropPolicy\";\n readonly table: string;\n readonly destructive: false;\n }\n | {\n readonly kind: \"createPolicy\";\n readonly table: string;\n readonly schema: SchemaIR;\n readonly model: string;\n readonly destructive: false;\n }\n | {\n readonly kind: \"createEnum\";\n readonly enumDef: EnumIR;\n readonly destructive: false;\n }\n | {\n readonly kind: \"dropEnum\";\n readonly enumName: string;\n readonly destructive: true;\n }\n | {\n readonly kind: \"addEnumValue\";\n readonly enumName: string;\n readonly value: string;\n readonly destructive: false;\n }\n | {\n readonly kind: \"createTable\";\n readonly table: string;\n readonly columns: readonly FieldIR[];\n /** Primary-key column db names (empty = no PK). */\n readonly primaryKey: readonly string[];\n readonly primaryKeyConstraintName?: string;\n /** Named CHECK constraints, rendered into the CREATE TABLE. */\n readonly checks?: readonly CheckIR[];\n readonly destructive: false;\n }\n | {\n readonly kind: \"addCheck\";\n readonly table: string;\n readonly name: string;\n /** Raw SQL expression, rendered verbatim. */\n readonly expression: string;\n readonly destructive: false;\n }\n | {\n readonly kind: \"dropCheck\";\n readonly table: string;\n readonly name: string;\n readonly destructive: false;\n }\n | {\n readonly kind: \"dropTable\";\n readonly table: string;\n readonly destructive: true;\n }\n | {\n readonly kind: \"addColumn\";\n readonly table: string;\n readonly column: FieldIR;\n readonly destructive: false;\n }\n | {\n readonly kind: \"dropColumn\";\n readonly table: string;\n readonly column: string;\n readonly destructive: true;\n }\n | {\n readonly kind: \"alterColumn\";\n readonly table: string;\n /** Column db name. */\n readonly column: string;\n readonly from: FieldIR;\n readonly to: FieldIR;\n readonly changes: readonly AlterColumnAspect[];\n readonly destructive: boolean;\n }\n | {\n readonly kind: \"createIndex\";\n readonly table: string;\n readonly name: string;\n /** IR index kind (\"btree\", \"gin\", …) — `unique` indexes are always btree. */\n readonly indexKind: string;\n readonly unique: boolean;\n readonly columns: readonly IndexColumn[];\n /** Partial-index predicate, raw SQL. */\n readonly where?: string;\n /** `UNIQUE NULLS NOT DISTINCT` (postgres 15+; sqlite/mysql renderers refuse). */\n readonly nullsNotDistinct?: boolean;\n readonly destructive: false;\n }\n | {\n readonly kind: \"dropIndex\";\n readonly name: string;\n /** PostgreSQL unique-constraint backing indexes are dropped via their owner. */\n readonly constraintName?: string;\n /**\n * Table the index belongs to. Optional for postgres/sqlite (their DROP\n * INDEX is schema-global) but REQUIRED by the mysql renderer\n * (`DROP INDEX … ON table`); the differ always fills it.\n */\n readonly table?: string;\n readonly destructive: false;\n }\n | {\n readonly kind: \"addForeignKey\";\n readonly table: string;\n readonly constraintName: string;\n readonly columns: readonly string[];\n readonly refTable: string;\n readonly refColumns: readonly string[];\n readonly onDelete: CascadeAction;\n readonly onUpdate: CascadeAction;\n readonly destructive: false;\n }\n | {\n /**\n * Stage a foreign key without validating existing rows (postgres\n * `NOT VALID`). Skips the scan, NOT the brief ACCESS EXCLUSIVE lock;\n * `validateConstraint` finishes the job under a weaker lock. sqlite and\n * mysql have no such split and refuse this step.\n */\n readonly kind: \"addForeignKeyNotValid\";\n readonly table: string;\n readonly constraintName: string;\n readonly columns: readonly string[];\n readonly refTable: string;\n readonly refColumns: readonly string[];\n readonly onDelete: CascadeAction;\n readonly onUpdate: CascadeAction;\n readonly destructive: false;\n }\n | {\n /** Stage a CHECK without validating existing rows (postgres `NOT VALID`). */\n readonly kind: \"addCheckNotValid\";\n readonly table: string;\n readonly name: string;\n /** Raw SQL expression, rendered verbatim. */\n readonly expression: string;\n readonly destructive: false;\n }\n | {\n /** Validate a previously staged NOT VALID constraint (postgres only). */\n readonly kind: \"validateConstraint\";\n readonly table: string;\n readonly name: string;\n readonly destructive: false;\n }\n | {\n /**\n * Rename a physical table, preserving its rows, defaults, indexes and\n * inbound foreign keys. Only ever produced from an EXPLICIT rename\n * intent (renames.ts) — never inferred from a drop/create pair.\n */\n readonly kind: \"renameTable\";\n readonly from: string;\n readonly to: string;\n readonly destructive: false;\n }\n | {\n /** Rename a physical column, preserving its data, default and indexes. */\n readonly kind: \"renameColumn\";\n readonly table: string;\n readonly from: string;\n readonly to: string;\n readonly destructive: false;\n }\n | {\n readonly kind: \"dropForeignKey\";\n readonly table: string;\n readonly constraintName: string;\n readonly destructive: false;\n }\n | {\n readonly kind: \"createJoinTable\";\n readonly table: string;\n readonly a: JoinTableEnd;\n readonly b: JoinTableEnd;\n readonly destructive: false;\n }\n | {\n readonly kind: \"dropJoinTable\";\n readonly table: string;\n readonly destructive: true;\n }\n | {\n readonly kind: \"addPrimaryKey\";\n readonly table: string;\n readonly constraintName?: string;\n readonly columns: readonly string[];\n readonly destructive: false;\n }\n | {\n readonly kind: \"dropPrimaryKey\";\n readonly table: string;\n readonly constraintName?: string;\n readonly destructive: false;\n }\n | {\n /**\n * Drop a view present in the live database but absent from the target\n * schema (board #26). Ordered FIRST — postgres refuses dropping a column\n * a leftover view depends on (2BP01), so removed views must go before\n * the table/column changes they block. Destructive: the view definition\n * is not stored in the IR, so the drop cannot be reversed.\n */\n readonly kind: \"dropView\";\n /** View db name. */\n readonly table: string;\n readonly destructive: true;\n }\n) & {\n /** Separate from data loss: a removal or potentially widening policy replacement. */\n readonly securityChange?: string;\n};\n\n/** One-line human description of a step (refusal messages, CLI output). */\nexport function describeStep(params: { step: MigrationStep }): string {\n const { step } = params;\n switch (step.kind) {\n case \"addExclusion\": return `add exclusion \"${step.exclusion.name}\" on \"${step.table}\"`;\n case \"dropExclusion\": return `drop exclusion \"${step.exclusion.name}\" on \"${step.table}\"`;\n case \"enableRls\": return `enable native RLS on \"${step.table}\"`;\n case \"forceRls\": return `force native RLS on \"${step.table}\"`;\n case \"disableRls\": return `disable native RLS on \"${step.table}\"`;\n case \"noForceRls\": return `remove forced native RLS on \"${step.table}\"`;\n case \"createPolicy\": return `create native RLS policy on \"${step.table}\"`;\n case \"dropPolicy\": return `drop native RLS policy on \"${step.table}\"`;\n case \"createEnum\":\n return `create enum \"${step.enumDef.dbName ?? step.enumDef.name}\"`;\n case \"dropEnum\":\n return `drop enum \"${step.enumName}\"`;\n case \"addEnumValue\":\n return `add value \"${step.value}\" to enum \"${step.enumName}\"`;\n case \"createTable\":\n return `create table \"${step.table}\"`;\n case \"dropTable\":\n return `drop table \"${step.table}\"`;\n case \"addColumn\":\n return `add column \"${step.table}\".\"${step.column.dbName ?? step.column.name}\"`;\n case \"dropColumn\":\n return `drop column \"${step.table}\".\"${step.column}\"`;\n case \"alterColumn\":\n return `alter column \"${step.table}\".\"${step.column}\" (${step.changes.join(\", \")})`;\n case \"createIndex\":\n return `create ${step.unique ? \"unique \" : \"\"}index \"${step.name}\" on \"${step.table}\"`;\n case \"addCheck\":\n return `add check \"${step.name}\" on \"${step.table}\"`;\n case \"dropCheck\":\n return `drop check \"${step.name}\" on \"${step.table}\"`;\n case \"dropIndex\":\n return `drop index \"${step.name}\"`;\n case \"addForeignKey\":\n return `add foreign key \"${step.constraintName}\" on \"${step.table}\"`;\n case \"addForeignKeyNotValid\":\n return `add foreign key \"${step.constraintName}\" on \"${step.table}\" (NOT VALID)`;\n case \"addCheckNotValid\":\n return `add check \"${step.name}\" on \"${step.table}\" (NOT VALID)`;\n case \"validateConstraint\":\n return `validate constraint \"${step.name}\" on \"${step.table}\"`;\n case \"renameTable\":\n return `rename table \"${step.from}\" to \"${step.to}\"`;\n case \"renameColumn\":\n return `rename column \"${step.table}\".\"${step.from}\" to \"${step.to}\"`;\n case \"dropForeignKey\":\n return `drop foreign key \"${step.constraintName}\" on \"${step.table}\"`;\n case \"createJoinTable\":\n return `create join table \"${step.table}\"`;\n case \"dropJoinTable\":\n return `drop join table \"${step.table}\"`;\n case \"addPrimaryKey\":\n return `add primary key on \"${step.table}\"`;\n case \"dropPrimaryKey\":\n return `drop primary key on \"${step.table}\"`;\n case \"dropView\":\n return `drop view \"${step.table}\"`;\n }\n}\n\n// ─── Runner shapes ────────────────────────────────────────────────\n\n/** A named migration: ordered SQL statements plus its aggregate destructiveness. */\nexport type MigrationFile = {\n /** Immutable package origin; absent preserves historical checksum rules. */\n readonly moduleOrigin?: import(\"./module-origin.ts\").ModuleMigrationOrigin;\n /** Reviewed desired state, checksum-bound for new migrations only. */\n readonly desiredState?: MigrationDesiredState;\n /** Offline --empty shell: cannot execute or establish trusted desired state until finalized. */\n readonly desiredStatePending?: true;\n readonly name: string;\n /** One SQL string per statement, in execution order. */\n readonly sql: readonly string[];\n /** True when any underlying step can lose data. */\n readonly destructive: boolean;\n /**\n * Reverse statements (`down.sql`), when the migration carries them.\n * Migrations generated before down-migration support have none —\n * `rollbackMigration` refuses those with a clear error.\n */\n readonly downSql?: readonly string[];\n /** Security changes are not authorized by an ordinary data-loss acknowledgement. */\n readonly securityChanges?: readonly string[];\n readonly downSecurityChanges?: readonly string[];\n /** Trusted source declarations used for drift preflight on generated migrations. */\n readonly rls?: { readonly from: SchemaIR; readonly to: SchemaIR };\n /**\n * Explicit execution semantics (transaction mode, migration-owned session\n * limits, declared per-statement operations). ABSENT means the dialect's\n * existing behaviour, and hashes exactly as it always did — see\n * execution.ts's checksum-compatibility rule.\n */\n readonly execution?: MigrationExecution;\n /** Execution semantics of `downSql`; absent means the dialect's existing behaviour. */\n readonly downExecution?: MigrationExecution;\n};\n\n/** Subset preserves programmatic calls; complete requires an ordered full chain. */\nexport type MigrationHistoryMode = \"subset\" | \"complete\";\n\n/** Pure replay validation before an operation such as reset destroys the database. */\nexport type MigrationReplayOptions = {\n readonly migrations: readonly MigrationFile[];\n readonly dialect?: Dialect;\n readonly acceptSecurityChanges?: boolean;\n readonly acceptIntegrityLoss?: boolean;\n readonly removeUnmanaged?: readonly SqlObjectIdentity[];\n readonly probe?: \"none\" | \"rollback\" | \"temporary\";\n};\n\n/** Result of a lock-held rollback selection and execution. */\nexport type RollbackResult = { readonly rolledBack: readonly string[] };\n\n/** Result of `applyMigrations`. */\nexport type AppliedResult = {\n /** Migrations executed by this call, in order. */\n readonly applied: readonly string[];\n /** Migrations already recorded and verified, skipped. */\n readonly skipped: readonly string[];\n};\n\n/** Result of `migrationStatus`. */\nexport type MigrationStatus = {\n /** Journal rows with no supplied file; omitted when empty for compatibility. */\n readonly unknownFiles?: readonly string[];\n /** Recorded migrations whose checksum matches. */\n readonly applied: readonly string[];\n /** Migrations with no record yet. */\n readonly pending: readonly string[];\n /** Recorded migrations whose checksum no longer matches their SQL. */\n readonly mismatched: readonly string[];\n /**\n * Migrations whose rollback started but did not finish (mysql only — its\n * DDL is non-transactional, so `rollbackMigration` records per-statement\n * progress). Re-run the rollback to resume, or repair with\n * `resolveMigration`.\n */\n readonly rollingBack: readonly string[];\n};\n\n/**\n * How one bookkeeping row stands against the migration file of the same name.\n * `unknown-file` is a recorded migration whose file is missing from the\n * migrations directory — history the tool cannot reverse.\n */\nexport type RecordedMigrationState =\n | \"applied\"\n | \"partial\"\n | \"mismatched\"\n | \"rolling-back\"\n | \"unknown-file\";\n\n/** One row of the `_vibe_migrations` journal, in the order it was written. */\nexport type RecordedMigration = {\n readonly name: string;\n /** Recorded checksum; empty for a `resolveMigration` repair record. */\n readonly checksum: string;\n /** Statements completed; NEGATIVE (-(k+1)) marks an unfinished rollback. */\n readonly statementIndex: number;\n readonly state: RecordedMigrationState;\n};\n\n/** Result of `push`. */\nexport type PushResult = {\n readonly objects?: readonly MigrationObjectState[];\n readonly blocked?: boolean;\n readonly unmanagedRemovals?: readonly SqlObjectIdentity[];\n readonly desiredState?: DesiredState;\n /** The diff that was applied (empty = database already matched). */\n readonly steps: readonly MigrationStep[];\n /** The SQL statements that were executed, in order. */\n readonly applied: readonly string[];\n /** Dry-run statements, never executed. */\n readonly planned?: readonly string[];\n readonly securityChanges?: readonly string[];\n};\n",
|
|
46
46
|
"/**\n * MySQL DDL renderer: migration steps → SQL statements.\n *\n * Every identifier is backtick-quoted through `mysqlDialect.quoteIdent` — the\n * ONE quoting decision point. Pinned choices:\n *\n * - String → varchar(191): utf8mb4 × 4 bytes keeps indexed String columns\n * inside the 767-byte legacy InnoDB index-key limit (`@db.Text` opts out —\n * TEXT columns are never indexed by us; indexing one would need a prefix\n * length we do not emit).\n * - autoincrement renders `AUTO_INCREMENT` (the column must be a key — the\n * PRIMARY KEY clause in the same CREATE TABLE satisfies that; ALTERing one\n * onto an existing column is refused, pg parity).\n * - Enums are inline `ENUM('A', 'B')` column types; the standalone enum steps\n * (createEnum/dropEnum/addEnumValue) render NOTHING — value changes arrive\n * as alterColumn steps (value-based type keys) and render as MODIFY COLUMN\n * with the widened list.\n * - alterColumn type/nullability → one `MODIFY COLUMN` with the full target\n * definition (mysql redefines the column wholesale); default-only changes\n * use `ALTER COLUMN … SET/DROP DEFAULT`.\n * - No partial indexes on mysql → VIBE_UNSUPPORTED_CAPABILITY naming the\n * index. Index kinds other than btree are refused the same way.\n * - `DROP INDEX … ON table` needs the table — the differ's dropIndex steps\n * carry it; a step without one is a VIBE_MIGRATION error.\n * - `DROP TABLE` has no cascade (mysql parses `CASCADE` and ignores it), and\n * dropping a parent still referenced by another to-be-dropped table fails\n * with errno 3730 `ER_FK_CANNOT_DROP_PARENT` (observed live on 8.4). FK\n * drops on SURVIVING tables come from the differ's bucket order; drops of\n * whole dependent groups are topologically reordered children-first here\n * (the shared `orderDropsChildrenFirst`, same rule as sqlite).\n */\n\nimport { VibeError, implicitJoinTableObjectNames, unsupportedCapability } from \"@vibeorm/schema\";\nimport type { EnumIR, FieldIR, SchemaIR } from \"@vibeorm/schema\";\nimport { mysqlDialect } from \"@vibeorm/sql\";\nimport { orderDropsChildrenFirst } from \"./drop-order.ts\";\nimport { normalizeSchema } from \"../normalize.ts\";\nimport { CASCADE_ACTION_SQL } from \"../postgres-types.ts\";\nimport { mysqlColumnTypeSql, mysqlDefaultSql } from \"../mysql-types.ts\";\nimport type { MigrationStep } from \"../types.ts\";\nimport { isRlsStep, renderRlsStep } from \"./rls.ts\";\nimport { assertEnumStringTransition } from \"../enum-values.ts\";\n\n// ─── Public API ───────────────────────────────────────────────────\n\n/**\n * Render migration steps to mysql SQL. `to` (the target schema) is required\n * whenever an enum column is rendered — the inline `ENUM(…)` type needs the\n * enum's values, which live on the schema, not the step. `from` enables the\n * topological drop order (children before referenced parents); without it,\n * drops render in step order.\n */\nexport function renderMysqlSteps(params: {\n steps: readonly MigrationStep[];\n from?: SchemaIR;\n to?: SchemaIR;\n}): string[] {\n for (const step of params.steps) {\n if (isRlsStep({ step })) renderRlsStep({ step, dialect: \"mysql\" });\n if (step.kind !== \"alterColumn\" || !step.changes.some((change) => change === \"type\" || change === \"nullability\" || change === \"collation\")) continue;\n const owner = [...(params.from?.migrationObjects ?? []), ...(params.to?.migrationObjects ?? [])].find((object) => {\n const identity = object.identity;\n return object.dialect === \"mysql\" && (identity.kind === \"columnDefault\" || identity.kind === \"generatedColumn\" || identity.kind === \"column\") && identity.table.name === step.table && identity.column === step.column;\n });\n if (owner !== undefined) throw unsupportedCapability({ dialect: \"mysql\", feature: \"mysqlOwnedColumnRewrite\", hint: `MODIFY COLUMN would overwrite migration-owned ${owner.id}; use a reviewed migration that preserves the complete column definition` });\n }\n const enums = new Map<string, EnumIR>();\n for (const enumDef of params.to?.enums ?? []) {\n enums.set(enumDef.dbName ?? enumDef.name, enumDef);\n }\n\n // Topological drop order — mysql refuses to drop a parent that another\n // to-be-dropped table still references (no cascade; see module doc).\n const dropNames = params.steps\n .filter((step) => step.kind === \"dropTable\" || step.kind === \"dropJoinTable\")\n .map((step) => (step as Extract<MigrationStep, { kind: \"dropTable\" }>).table);\n const fromNorm =\n params.from === undefined ? undefined : normalizeSchema({ schema: params.from, dialect: \"mysql\" });\n const orderedDrops = orderDropsChildrenFirst({ names: dropNames, fromNorm });\n for (const step of params.steps) {\n if (step.kind !== \"dropPrimaryKey\") continue;\n const table = fromNorm?.tables.get(step.table);\n if (table === undefined) continue;\n const auto = [...table.columns].find(([, column]) => column.field.default?.kind === \"autoincrement\")?.[0];\n if (auto === undefined) continue;\n const retainedIndex = [...table.indexes.values()].some((index) => index.columns[0]?.name === auto && !params.steps.some((candidate) => candidate.kind === \"dropIndex\" && candidate.table === step.table && candidate.name === index.name));\n if (!retainedIndex) throw unsupportedCapability({ dialect: \"mysql\", feature: \"mysqlAutoIncrementKeyRemoval\", hint: `Removing the last leading key of AUTO_INCREMENT column \"${step.table}.${auto}\" requires a reviewed combined ALTER` });\n }\n let dropCursor = 0;\n\n const inlineIndexes = new Map<MigrationStep, Extract<MigrationStep, { kind: \"createIndex\" }>>();\n const consumed = new Set<MigrationStep>();\n for (const step of params.steps) {\n const columns = step.kind === \"createTable\" ? step.columns : step.kind === \"addColumn\" ? [step.column] : [];\n const counters = columns.filter((field) => field.default?.kind === \"autoincrement\");\n if (counters.length > 1) throw unsupportedCapability({ dialect: \"mysql\", feature: \"multiple auto-increment columns\" });\n for (const column of counters) {\n const name = column.dbName ?? column.name;\n if (step.kind === \"createTable\" && step.primaryKey[0] === name) continue;\n if (step.kind !== \"createTable\" && step.kind !== \"addColumn\") continue;\n const key = params.steps.find((candidate): candidate is Extract<MigrationStep, { kind: \"createIndex\" }> => candidate.kind === \"createIndex\" && candidate.table === step.table && candidate.columns[0]?.name === name && !candidate.columns[0]?.desc && candidate.where === undefined && candidate.nullsNotDistinct !== true && (candidate.unique || candidate.indexKind === \"btree\"));\n if (key === undefined) throw unsupportedCapability({ dialect: \"mysql\", feature: `auto-increment column ${step.table}.${name} without an accompanying leading index` });\n inlineIndexes.set(step, key);\n consumed.add(key);\n }\n }\n return params.steps.flatMap((step) => {\n if (consumed.has(step)) return [];\n if (step.kind === \"dropTable\" || step.kind === \"dropJoinTable\") {\n const table = orderedDrops[dropCursor] as string;\n dropCursor += 1;\n return [`DROP TABLE ${q(table)};`];\n }\n return renderStep({ step, enums, inlineIndex: inlineIndexes.get(step) });\n });\n}\n\n// ─── Per-step rendering ───────────────────────────────────────────\n\nfunction renderStep(params: {\n step: MigrationStep;\n enums: ReadonlyMap<string, EnumIR>;\n inlineIndex?: Extract<MigrationStep, { kind: \"createIndex\" }>;\n}): string[] {\n const { step, enums } = params;\n switch (step.kind) {\n case \"enableRls\":\n case \"forceRls\":\n case \"disableRls\":\n case \"noForceRls\":\n case \"createPolicy\":\n case \"dropPolicy\":\n return renderRlsStep({ step, dialect: \"mysql\" });\n case \"createEnum\":\n case \"dropEnum\":\n case \"addEnumValue\":\n return []; // Enums are inline column types on mysql.\n case \"createTable\": {\n const lines = step.columns.map((column) => ` ${columnDefSql({ field: column, enums })}`);\n if (step.primaryKey.length > 0) {\n lines.push(` PRIMARY KEY (${step.primaryKey.map((column) => q(column)).join(\", \")})`);\n }\n if (params.inlineIndex !== undefined) lines.push(` ${inlineIndexSql({ index: params.inlineIndex })}`);\n for (const check of step.checks ?? []) {\n lines.push(` CONSTRAINT ${q(check.name)} CHECK (${check.expression})`);\n }\n return [`CREATE TABLE ${q(step.table)} (\\n${lines.join(\",\\n\")}\\n);`];\n }\n case \"dropTable\":\n case \"dropJoinTable\":\n return [`DROP TABLE ${q(step.table)};`];\n case \"dropView\":\n return [`DROP VIEW IF EXISTS ${q(step.table)};`];\n case \"addColumn\":\n return [\n `ALTER TABLE ${q(step.table)} ADD COLUMN ${columnDefSql({ field: step.column, enums })}${params.inlineIndex === undefined ? \"\" : `, ADD ${inlineIndexSql({ index: params.inlineIndex })}`};`,\n ];\n case \"dropColumn\":\n return [`ALTER TABLE ${q(step.table)} DROP COLUMN ${q(step.column)};`];\n case \"alterColumn\":\n return renderAlterColumn({ step, enums });\n case \"createIndex\": {\n if (step.where !== undefined) {\n throw unsupportedCapability({\n dialect: \"mysql\",\n feature: `partial index \"${step.name}\"`,\n hint: \"mysql has no partial indexes — drop the WHERE predicate or gate the index per dialect\",\n });\n }\n if (step.nullsNotDistinct === true) {\n throw unsupportedCapability({\n dialect: \"mysql\",\n feature: `UNIQUE NULLS NOT DISTINCT (index \"${step.name}\")`,\n hint: \"mysql treats NULLs as distinct in unique indexes and has no switch — gate the flag per dialect\",\n });\n }\n if (!step.unique && step.indexKind !== \"btree\") {\n throw unsupportedCapability({\n dialect: \"mysql\",\n feature: `index kind \"${step.indexKind}\" (index \"${step.name}\")`,\n hint: \"mysql secondary indexes are btree only\",\n });\n }\n const cols = step.columns\n .map((column) => `${q(column.name)}${column.desc ? \" DESC\" : \"\"}`)\n .join(\", \");\n return [\n `CREATE ${step.unique ? \"UNIQUE \" : \"\"}INDEX ${q(step.name)} ON ${q(step.table)} (${cols});`,\n ];\n }\n case \"addCheck\":\n // MySQL 8.0.16+ parses AND enforces CHECK constraints.\n return [\n `ALTER TABLE ${q(step.table)} ADD CONSTRAINT ${q(step.name)} CHECK (${step.expression});`,\n ];\n case \"addExclusion\": case \"dropExclusion\": throw new VibeError({ code: \"VIBE_UNSUPPORTED_CAPABILITY\", message: \"Exclusion constraints require PostgreSQL\", meta: { dialect: \"mysql\", feature: \"exclusionConstraints\" } });\n case \"dropCheck\":\n return [`ALTER TABLE ${q(step.table)} DROP CHECK ${q(step.name)};`];\n case \"dropIndex\": {\n if (step.table === undefined) {\n throw new VibeError({\n code: \"VIBE_MIGRATION\",\n message: `dropIndex \"${step.name}\" carries no table — mysql's DROP INDEX requires one`,\n meta: { index: step.name },\n });\n }\n return [`DROP INDEX ${q(step.name)} ON ${q(step.table)};`];\n }\n case \"addForeignKey\": {\n const cols = step.columns.map((column) => q(column)).join(\", \");\n const refCols = step.refColumns.map((column) => q(column)).join(\", \");\n return [\n `ALTER TABLE ${q(step.table)} ADD CONSTRAINT ${q(step.constraintName)} FOREIGN KEY (${cols}) REFERENCES ${q(step.refTable)} (${refCols}) ON DELETE ${CASCADE_ACTION_SQL[step.onDelete]} ON UPDATE ${CASCADE_ACTION_SQL[step.onUpdate]};`,\n ];\n }\n case \"renameTable\":\n return [`ALTER TABLE ${q(step.from)} RENAME TO ${q(step.to)};`];\n case \"renameColumn\":\n // MySQL 8.0.0+. The column keeps its type, default, indexes and inbound\n // foreign keys; only the name moves.\n return [`ALTER TABLE ${q(step.table)} RENAME COLUMN ${q(step.from)} TO ${q(step.to)};`];\n case \"addForeignKeyNotValid\":\n case \"addCheckNotValid\":\n case \"validateConstraint\":\n // MySQL has no NOT VALID / VALIDATE split: a constraint is checked when\n // it is added, full stop. Refusing is the honest answer — silently\n // emitting the ordinary ADD would promise a staged rollout that is not\n // happening. (`ALTER TABLE ... WITHOUT VALIDATION` exists only for\n // partition exchange, not for constraints.)\n throw unsupportedCapability({\n dialect: \"mysql\",\n feature: \"stagedConstraints\",\n hint: \"MySQL validates a constraint when it is added; add it in one step, or take the outage window that scan needs\",\n });\n case \"dropForeignKey\":\n return [`ALTER TABLE ${q(step.table)} DROP FOREIGN KEY ${q(step.constraintName)};`];\n case \"createJoinTable\": {\n const aType = mysqlColumnTypeSql({ field: { ...step.a.field, isList: false }, enums });\n const bType = mysqlColumnTypeSql({ field: { ...step.b.field, isList: false }, enums });\n const names = implicitJoinTableObjectNames({ table: step.table });\n return [\n `CREATE TABLE ${q(step.table)} (\\n \\`A\\` ${aType} NOT NULL,\\n \\`B\\` ${bType} NOT NULL\\n);`,\n `CREATE UNIQUE INDEX ${q(names.uniqueIndex)} ON ${q(step.table)} (\\`A\\`, \\`B\\`);`,\n `CREATE INDEX ${q(names.indexB)} ON ${q(step.table)} (\\`B\\`);`,\n `ALTER TABLE ${q(step.table)} ADD CONSTRAINT ${q(names.foreignKeyA)} FOREIGN KEY (\\`A\\`) REFERENCES ${q(step.a.table)} (${q(step.a.column)}) ON DELETE CASCADE ON UPDATE CASCADE;`,\n `ALTER TABLE ${q(step.table)} ADD CONSTRAINT ${q(names.foreignKeyB)} FOREIGN KEY (\\`B\\`) REFERENCES ${q(step.b.table)} (${q(step.b.column)}) ON DELETE CASCADE ON UPDATE CASCADE;`,\n ];\n }\n case \"addPrimaryKey\":\n return [\n `ALTER TABLE ${q(step.table)} ADD PRIMARY KEY (${step.columns.map((column) => q(column)).join(\", \")});`,\n ];\n case \"dropPrimaryKey\":\n return [`ALTER TABLE ${q(step.table)} DROP PRIMARY KEY;`];\n }\n}\n\n// ─── Column pieces ────────────────────────────────────────────────\n\nfunction columnDefSql(params: { field: FieldIR; enums: ReadonlyMap<string, EnumIR> }): string {\n const { field, enums } = params;\n const name = q(field.dbName ?? field.name);\n\n const autoincrement = field.default?.kind === \"autoincrement\";\n if (autoincrement && field.type !== \"Int\" && field.type !== \"BigInt\") {\n throw new VibeError({\n code: \"VIBE_MIGRATION\",\n message: `autoincrement default on \"${field.name}\" requires a non-list Int or BigInt column`,\n meta: { field: field.name },\n });\n }\n\n let def = `${name} ${mysqlColumnTypeSql({ field, enums })}`;\n if (field.collation !== undefined) def += ` COLLATE ${q(field.collation)}`;\n if (!field.isOptional) def += \" NOT NULL\";\n if (autoincrement) def += \" AUTO_INCREMENT\";\n const defaultExpr = mysqlDefaultSql({ field });\n if (defaultExpr !== undefined) def += ` DEFAULT ${defaultExpr}`;\n return def;\n}\n\nfunction renderAlterColumn(params: {\n step: Extract<MigrationStep, { kind: \"alterColumn\" }>;\n enums: ReadonlyMap<string, EnumIR>;\n}): string[] {\n const { step, enums } = params;\n assertEnumStringTransition({ from: step.from, to: step.to, dialect: \"mysql\", table: step.table, column: step.column });\n\n if (step.to.default?.kind === \"autoincrement\" && step.from.default?.kind !== \"autoincrement\") {\n throw new VibeError({\n code: \"VIBE_MIGRATION\",\n message: `cannot add autoincrement to existing column \"${step.table}\".\"${step.column}\" — drop and recreate the column instead`,\n meta: { table: step.table, column: step.column },\n });\n }\n\n // Type or nullability changes redefine the whole column (MODIFY COLUMN\n // carries type + nullability + default in one definition).\n if (step.changes.includes(\"type\") || step.changes.includes(\"nullability\") || step.changes.includes(\"collation\")) {\n const field = step.to.type === \"String\" && step.to.collation === undefined && step.from.collation !== undefined\n ? { ...step.to, collation: step.from.collation }\n : step.to;\n return [\n `ALTER TABLE ${q(step.table)} MODIFY COLUMN ${columnDefSql({ field, enums })};`,\n ];\n }\n\n // Default-only change.\n const defaultExpr = mysqlDefaultSql({ field: step.to });\n return [\n defaultExpr === undefined\n ? `ALTER TABLE ${q(step.table)} ALTER COLUMN ${q(step.column)} DROP DEFAULT;`\n : `ALTER TABLE ${q(step.table)} ALTER COLUMN ${q(step.column)} SET DEFAULT ${defaultExpr};`,\n ];\n}\n\n// ─── Quoting ──────────────────────────────────────────────────────\n\nfunction q(name: string): string {\n return mysqlDialect.quoteIdent({ name });\n}\n\nfunction inlineIndexSql(params: { index: Extract<MigrationStep, { kind: \"createIndex\" }> }): string {\n const { index } = params;\n return `${index.unique ? \"UNIQUE \" : \"\"}INDEX ${q(index.name)} (${index.columns.map((column) => `${q(column.name)}${column.desc ? \" DESC\" : \"\"}`).join(\", \")})`;\n}\n",
|
|
47
|
-
"/**\n * Extension artifacts in the migrate pipeline (extensions.md §3 migrate plane).\n *\n * Extensions own database objects the core differ does not model: CREATE\n * EXTENSION, generated tsvector columns, FTS5 shadow tables + triggers,\n * specialty indexes (gin_trgm_ops, hnsw, bm25, FULLTEXT). The contract:\n *\n * 1. `collectExtensionArtifacts` asks each configured extension for its\n * artifacts (dialect-correct, idempotent SQL + a structured owner).\n * 2. `stripExtensionArtifacts` removes owned objects from the INTROSPECTED\n * IR before diffing, so the core differ never schedules their drop —\n * the introspector-representation-is-the-contract rule (LEARNINGS).\n * 3. `planMissingArtifacts` decides which artifacts must be created, by\n * checking the introspected IR for their owners (columns, indexes,\n * tables by name); non-introspectable owners (postgres extensions,\n * triggers) rely on their idempotent IF NOT EXISTS forms and always run.\n *\n * Removing a declaration does NOT auto-drop its artifacts (mirrors the v1\n * phantom-join-table precedent) — `drop` SQL is carried for tooling, not\n * scheduled by push.\n */\n\nimport { extensionDeclarations } from \"@vibeorm/schema\";\nimport type {\n Dialect,\n ExtensionArtifact,\n ModelIR,\n SchemaIR,\n VibeExtension,\n} from \"@vibeorm/schema\";\n\n// ─── Collection ───────────────────────────────────────────────────\n\n/** Artifacts of every configured extension for this schema, in order. */\nexport type CollectedArtifacts = {\n /** CREATE EXTENSION-class artifacts — run BEFORE the core diff SQL. */\n readonly setup: readonly ExtensionArtifact[];\n /** Object artifacts (columns, indexes, shadow tables, triggers) — run AFTER. */\n readonly objects: readonly ExtensionArtifact[];\n};\n\nexport function collectExtensionArtifacts(params: {\n schema: SchemaIR;\n dialect: Dialect;\n extensions: readonly VibeExtension[];\n}): CollectedArtifacts {\n const { schema, dialect, extensions } = params;\n const setup: ExtensionArtifact[] = [];\n const objects: ExtensionArtifact[] = [];\n\n for (const extension of extensions) {\n const artifactsHook = extension.migrate?.artifacts;\n if (artifactsHook === undefined) continue;\n const declarations = extensionDeclarations({ schema, name: extension.name });\n // A configured extension with no schema presence contributes nothing —\n // unless it is a config-only (replication-class) extension.\n if (Object.keys(declarations).length === 0 && extension.schema?.configOnly !== true) continue;\n\n for (const artifact of artifactsHook({\n schema,\n dialect,\n provider: schema.datasource.provider,\n options: extension.options,\n declarations,\n })) {\n (artifact.owns.kind === \"postgresExtension\" ? setup : objects).push(artifact);\n }\n }\n return { setup, objects };\n}\n\n// ─── Introspection filtering ──────────────────────────────────────\n\nfunction ownedTableNames(params: { artifacts: readonly ExtensionArtifact[] }): {\n exact: Set<string>;\n prefixes: string[];\n} {\n const exact = new Set<string>();\n const prefixes: string[] = [];\n for (const artifact of params.artifacts) {\n if (artifact.owns.kind !== \"table\") continue;\n exact.add(artifact.owns.name);\n prefixes.push(...(artifact.owns.auxiliaryPrefixes ?? []));\n }\n return { exact, prefixes };\n}\n\n/**\n * Remove extension-owned objects from an INTROSPECTED SchemaIR so the core\n * differ never sees them (they are neither dropped nor re-created by it).\n */\nexport function stripExtensionArtifacts(params: {\n schema: SchemaIR;\n artifacts: readonly ExtensionArtifact[];\n}): SchemaIR {\n const { schema, artifacts } = params;\n if (artifacts.length === 0) return schema;\n\n const tables = ownedTableNames({ artifacts });\n const ownedColumns = new Map<string, Set<string>>();\n const ownedIndexes = new Map<string, Set<string>>();\n for (const artifact of artifacts) {\n if (artifact.owns.kind === \"column\") {\n const set = ownedColumns.get(artifact.owns.table) ?? new Set<string>();\n set.add(artifact.owns.column);\n ownedColumns.set(artifact.owns.table, set);\n } else if (artifact.owns.kind === \"index\") {\n const set = ownedIndexes.get(artifact.owns.table) ?? new Set<string>();\n set.add(artifact.owns.name);\n ownedIndexes.set(artifact.owns.table, set);\n }\n }\n\n const models: ModelIR[] = [];\n for (const model of schema.models) {\n const tableName = model.dbName ?? model.name;\n if (tables.exact.has(tableName) || tables.prefixes.some((prefix) => tableName.startsWith(prefix))) {\n continue;\n }\n const columns = ownedColumns.get(tableName);\n const indexes = ownedIndexes.get(tableName);\n if (columns === undefined && indexes === undefined) {\n models.push(model);\n continue;\n }\n models.push({\n ...model,\n fields: model.fields.filter((field) => !(columns?.has(field.dbName ?? field.name) ?? false)),\n indexes: model.indexes.filter(\n (index) => !(index.name !== undefined && (indexes?.has(index.name) ?? false)),\n ),\n });\n }\n\n return { ...schema, models };\n}\n\n// ─── Presence planning ────────────────────────────────────────────\n\n/** Owner presence the IR cannot answer, probed live by push (both optional). */\nexport type InstalledExtensionState = {\n /** `SELECT extname FROM pg_extension` — postgres only. */\n readonly pgExtensions?: ReadonlySet<string>;\n /** `sqlite_master WHERE type='trigger'` names — sqlite only. */\n readonly triggers?: ReadonlySet<string>;\n};\n\n/**\n * The artifacts whose owner is missing from the introspected IR (must be\n * created). Owners the IR cannot see — postgres extensions and triggers —\n * consult the live-probed `installed` state when given, else always plan;\n * their `create` SQL is idempotent (IF NOT EXISTS) so replays converge.\n */\nexport function planMissingArtifacts(params: {\n introspected: SchemaIR;\n artifacts: readonly ExtensionArtifact[];\n installed?: InstalledExtensionState;\n}): ExtensionArtifact[] {\n const { introspected, artifacts, installed } = params;\n if (artifacts.length === 0) return [];\n\n const modelByTable = new Map<string, ModelIR>();\n for (const model of introspected.models) {\n modelByTable.set(model.dbName ?? model.name, model);\n }\n\n return artifacts.filter((artifact) => {\n const owner = artifact.owns;\n switch (owner.kind) {\n case \"postgresExtension\":\n return installed?.pgExtensions === undefined ? true : !installed.pgExtensions.has(owner.name);\n case \"trigger\":\n return installed?.triggers === undefined ? true : !installed.triggers.has(owner.name);\n case \"table\":\n return !modelByTable.has(owner.name);\n case \"column\": {\n const model = modelByTable.get(owner.table);\n if (model === undefined) return true;\n return !model.fields.some((field) => (field.dbName ?? field.name) === owner.column);\n }\n case \"index\": {\n const model = modelByTable.get(owner.table);\n if (model === undefined) return true;\n return !model.indexes.some((index) => index.name === owner.name);\n }\n }\n });\n}\n\n/** Probe live owner state the IR cannot carry (used by push before planning). */\nexport async function probeInstalledExtensionState(params: {\n executor: (execParams: { text: string; values?: unknown[] }) => Promise<Record<string, unknown>[]>;\n dialect: Dialect;\n artifacts: readonly ExtensionArtifact[];\n}): Promise<InstalledExtensionState> {\n const { executor, dialect, artifacts } = params;\n const state: { pgExtensions?: ReadonlySet<string>; triggers?: ReadonlySet<string> } = {};\n\n if (dialect === \"postgres\" && artifacts.some((artifact) => artifact.owns.kind === \"postgresExtension\")) {\n const rows = await executor({ text: \"SELECT extname FROM pg_extension\" });\n state.pgExtensions = new Set(rows.map((row) => String(row[\"extname\"])));\n }\n if (dialect === \"sqlite\" && artifacts.some((artifact) => artifact.owns.kind === \"trigger\")) {\n // `values: []` is the adapter-sqlite READ contract on the raw path.\n const rows = await executor({\n text: \"SELECT name FROM sqlite_master WHERE type = 'trigger'\",\n values: [],\n });\n state.triggers = new Set(rows.map((row) => String(row[\"name\"])));\n }\n return state;\n}\n\n/** Flatten artifacts to their create statements, in order. */\nexport function artifactCreateSql(params: {\n artifacts: readonly ExtensionArtifact[];\n}): string[] {\n return params.artifacts.flatMap((artifact) => [...artifact.create]);\n}\n"
|
|
47
|
+
"/**\n * Extension artifacts in the migrate pipeline (extensions.md §3 migrate plane).\n *\n * Extensions own database objects the core differ does not model: CREATE\n * EXTENSION, generated tsvector columns, FTS5 shadow tables + triggers,\n * specialty indexes (gin_trgm_ops, hnsw, bm25, FULLTEXT). The contract:\n *\n * 1. `collectExtensionArtifacts` asks each configured extension for its\n * artifacts (dialect-correct, idempotent SQL + a structured owner).\n * 2. `stripExtensionArtifacts` removes owned objects from the INTROSPECTED\n * IR before diffing, so the core differ never schedules their drop —\n * the introspector-representation-is-the-contract rule (LEARNINGS).\n * 3. `planMissingArtifacts` decides which artifacts must be created, by\n * checking the introspected IR for their owners (columns, indexes,\n * tables by name); non-introspectable owners (postgres extensions,\n * triggers) rely on their idempotent IF NOT EXISTS forms and always run.\n * 4. `planChangedArtifacts` decides which PRESENT artifacts must be dropped\n * and created again because their definition changed since the last\n * authored schema — `IF NOT EXISTS` would keep the old object silently.\n *\n * Removing a declaration does NOT auto-drop its artifacts (mirrors the v1\n * phantom-join-table precedent) — `drop` SQL is carried for tooling, not\n * scheduled by push.\n */\n\nimport { extensionDeclarations } from \"@vibeorm/schema\";\nimport type {\n Dialect,\n ExtensionArtifact,\n ModelIR,\n SchemaIR,\n VibeExtension,\n} from \"@vibeorm/schema\";\nimport type { MigrationFile } from \"./types.ts\";\n\n// ─── Collection ───────────────────────────────────────────────────\n\n/** The object artifacts one extension contributed, in its own order. */\nexport type ArtifactGroup = {\n readonly extension: string;\n readonly objects: readonly ExtensionArtifact[];\n};\n\n/** Artifacts of every configured extension for this schema, in order. */\nexport type CollectedArtifacts = {\n /** CREATE EXTENSION-class artifacts — run BEFORE the core diff SQL. */\n readonly setup: readonly ExtensionArtifact[];\n /** Object artifacts (columns, indexes, shadow tables, triggers) — run AFTER. */\n readonly objects: readonly ExtensionArtifact[];\n /** `objects`, grouped by the extension that contributed them (rebuild scope). */\n readonly groups: readonly ArtifactGroup[];\n};\n\nexport function collectExtensionArtifacts(params: {\n schema: SchemaIR;\n dialect: Dialect;\n extensions: readonly VibeExtension[];\n}): CollectedArtifacts {\n const { schema, dialect, extensions } = params;\n const setup: ExtensionArtifact[] = [];\n const objects: ExtensionArtifact[] = [];\n const groups: ArtifactGroup[] = [];\n\n for (const extension of extensions) {\n const artifactsHook = extension.migrate?.artifacts;\n if (artifactsHook === undefined) continue;\n const declarations = extensionDeclarations({ schema, name: extension.name });\n // A configured extension with no schema presence contributes nothing —\n // unless it is a config-only (replication-class) extension.\n if (Object.keys(declarations).length === 0 && extension.schema?.configOnly !== true) continue;\n\n const contributed: ExtensionArtifact[] = [];\n for (const artifact of artifactsHook({\n schema,\n dialect,\n provider: schema.datasource.provider,\n options: extension.options,\n declarations,\n })) {\n if (artifact.owns.kind === \"postgresExtension\") setup.push(artifact);\n else {\n objects.push(artifact);\n contributed.push(artifact);\n }\n }\n groups.push({ extension: extension.name, objects: contributed });\n }\n return { setup, objects, groups };\n}\n\n/**\n * The last authored schema in a migration chain — the declarations its newest\n * snapshot-bearing migration was generated from. Only extension declarations\n * are read from it (`planChangedArtifacts`), never physical expectations, so\n * an ordinary SQL successor does not disqualify it the way it disqualifies a\n * deployed desired state: a hand-written index change after the snapshot is\n * at worst rebuilt once more, visibly, in reviewed SQL.\n */\nexport function lastDeclaredSchema(params: { migrations: readonly MigrationFile[] }): SchemaIR | undefined {\n return [...params.migrations].reverse().find((migration) => migration.desiredState !== undefined)?.desiredState?.to.schema;\n}\n\n// ─── Introspection filtering ──────────────────────────────────────\n\nfunction ownedTableNames(params: { artifacts: readonly ExtensionArtifact[] }): {\n exact: Set<string>;\n prefixes: string[];\n} {\n const exact = new Set<string>();\n const prefixes: string[] = [];\n for (const artifact of params.artifacts) {\n if (artifact.owns.kind !== \"table\") continue;\n exact.add(artifact.owns.name);\n prefixes.push(...(artifact.owns.auxiliaryPrefixes ?? []));\n }\n return { exact, prefixes };\n}\n\n/**\n * Remove extension-owned objects from an INTROSPECTED SchemaIR so the core\n * differ never sees them (they are neither dropped nor re-created by it).\n */\nexport function stripExtensionArtifacts(params: {\n schema: SchemaIR;\n artifacts: readonly ExtensionArtifact[];\n}): SchemaIR {\n const { schema, artifacts } = params;\n if (artifacts.length === 0) return schema;\n\n const tables = ownedTableNames({ artifacts });\n const ownedColumns = new Map<string, Set<string>>();\n const ownedIndexes = new Map<string, Set<string>>();\n for (const artifact of artifacts) {\n if (artifact.owns.kind === \"column\") {\n const set = ownedColumns.get(artifact.owns.table) ?? new Set<string>();\n set.add(artifact.owns.column);\n ownedColumns.set(artifact.owns.table, set);\n } else if (artifact.owns.kind === \"index\") {\n const set = ownedIndexes.get(artifact.owns.table) ?? new Set<string>();\n set.add(artifact.owns.name);\n ownedIndexes.set(artifact.owns.table, set);\n }\n }\n\n const models: ModelIR[] = [];\n for (const model of schema.models) {\n const tableName = model.dbName ?? model.name;\n if (tables.exact.has(tableName) || tables.prefixes.some((prefix) => tableName.startsWith(prefix))) {\n continue;\n }\n const columns = ownedColumns.get(tableName);\n const indexes = ownedIndexes.get(tableName);\n if (columns === undefined && indexes === undefined) {\n models.push(model);\n continue;\n }\n models.push({\n ...model,\n fields: model.fields.filter((field) => !(columns?.has(field.dbName ?? field.name) ?? false)),\n indexes: model.indexes.filter(\n (index) => !(index.name !== undefined && (indexes?.has(index.name) ?? false)),\n ),\n });\n }\n\n return { ...schema, models };\n}\n\n// ─── Presence planning ────────────────────────────────────────────\n\n/** Owner presence the IR cannot answer, probed live by push (both optional). */\nexport type InstalledExtensionState = {\n /** `SELECT extname FROM pg_extension` — postgres only. */\n readonly pgExtensions?: ReadonlySet<string>;\n /** `sqlite_master WHERE type='trigger'` names — sqlite only. */\n readonly triggers?: ReadonlySet<string>;\n};\n\n/**\n * The artifacts whose owner is missing from the introspected IR (must be\n * created). Owners the IR cannot see — postgres extensions and triggers —\n * consult the live-probed `installed` state when given, else always plan;\n * their `create` SQL is idempotent (IF NOT EXISTS) so replays converge.\n */\nexport function planMissingArtifacts(params: {\n introspected: SchemaIR;\n artifacts: readonly ExtensionArtifact[];\n installed?: InstalledExtensionState;\n}): ExtensionArtifact[] {\n const { introspected, artifacts, installed } = params;\n if (artifacts.length === 0) return [];\n\n const modelByTable = new Map<string, ModelIR>();\n for (const model of introspected.models) {\n modelByTable.set(model.dbName ?? model.name, model);\n }\n\n return artifacts.filter((artifact) => {\n const owner = artifact.owns;\n switch (owner.kind) {\n case \"postgresExtension\":\n return installed?.pgExtensions === undefined ? true : !installed.pgExtensions.has(owner.name);\n case \"trigger\":\n return installed?.triggers === undefined ? true : !installed.triggers.has(owner.name);\n case \"table\":\n return !modelByTable.has(owner.name);\n case \"column\": {\n const model = modelByTable.get(owner.table);\n if (model === undefined) return true;\n return !model.fields.some((field) => (field.dbName ?? field.name) === owner.column);\n }\n case \"index\": {\n const model = modelByTable.get(owner.table);\n if (model === undefined) return true;\n return !model.indexes.some((index) => index.name === owner.name);\n }\n }\n });\n}\n\n/** Probe live owner state the IR cannot carry (used by push before planning). */\nexport async function probeInstalledExtensionState(params: {\n executor: (execParams: { text: string; values?: unknown[] }) => Promise<Record<string, unknown>[]>;\n dialect: Dialect;\n artifacts: readonly ExtensionArtifact[];\n}): Promise<InstalledExtensionState> {\n const { executor, dialect, artifacts } = params;\n const state: { pgExtensions?: ReadonlySet<string>; triggers?: ReadonlySet<string> } = {};\n\n if (dialect === \"postgres\" && artifacts.some((artifact) => artifact.owns.kind === \"postgresExtension\")) {\n const rows = await executor({ text: \"SELECT extname FROM pg_extension\" });\n state.pgExtensions = new Set(rows.map((row) => String(row[\"extname\"])));\n }\n if (dialect === \"sqlite\" && artifacts.some((artifact) => artifact.owns.kind === \"trigger\")) {\n // `values: []` is the adapter-sqlite READ contract on the raw path.\n const rows = await executor({\n text: \"SELECT name FROM sqlite_master WHERE type = 'trigger'\",\n values: [],\n });\n state.triggers = new Set(rows.map((row) => String(row[\"name\"])));\n }\n return state;\n}\n\n/** Flatten artifacts to their create statements, in order. */\nexport function artifactCreateSql(params: {\n artifacts: readonly ExtensionArtifact[];\n}): string[] {\n return params.artifacts.flatMap((artifact) => [...artifact.create]);\n}\n\n// ─── Definition changes ───────────────────────────────────────────\n\n/**\n * Present object artifacts whose definition changed since the previously\n * authored schema. The same extension code renders both sides, so only a real\n * declaration, column or option change differs — and for such a change an\n * idempotent `CREATE … IF NOT EXISTS` keeps the OLD object silently (a bm25\n * index its old tokenizer, a tsvector column its old weights, an hnsw index\n * its old `m`). Those artifacts are dropped and created again.\n *\n * Two sources say \"changed\": the previous authored declarations, when the\n * caller has them, and `probed` — artifacts a server-side probe found to\n * differ from their own create statements (`probeChangedArtifacts`).\n *\n * A rebuilt COLUMN takes the same extension's indexes and triggers on that\n * table with it: dropping a generated column drops the index on it, whose own\n * text is unchanged. The rebuild never touches CREATE EXTENSION-class\n * artifacts (dropping an extension drops everything depending on it),\n * artifacts in `missing` (their create runs anyway and their drop may not be\n * idempotent) or artifacts whose owner moved (a renamed index is left to\n * presence planning and the core differ's unmanaged-removal review).\n */\nexport function planChangedArtifacts(params: {\n previous?: CollectedArtifacts;\n current: CollectedArtifacts;\n missing: readonly ExtensionArtifact[];\n probed?: readonly ExtensionArtifact[];\n}): ExtensionArtifact[] {\n const previousById = new Map((params.previous?.objects ?? []).map((artifact) => [artifact.id, artifact]));\n const probedIds = new Set((params.probed ?? []).map((artifact) => artifact.id));\n const missingIds = new Set(params.missing.map((artifact) => artifact.id));\n const rebuilt = new Set<string>();\n for (const group of params.current.groups) {\n const changed = group.objects.filter((artifact) => {\n if (missingIds.has(artifact.id)) return false;\n if (probedIds.has(artifact.id)) return true;\n const before = previousById.get(artifact.id);\n return before !== undefined\n && JSON.stringify(before.owns) === JSON.stringify(artifact.owns)\n && JSON.stringify(before.create) !== JSON.stringify(artifact.create);\n });\n if (changed.length === 0) continue;\n const rebuiltColumnTables = new Set(changed.flatMap((artifact) => artifact.owns.kind === \"column\" ? [artifact.owns.table] : []));\n for (const artifact of group.objects) {\n if (missingIds.has(artifact.id)) continue;\n const dependent = (artifact.owns.kind === \"index\" || artifact.owns.kind === \"trigger\") && rebuiltColumnTables.has(artifact.owns.table);\n if (changed.includes(artifact) || dependent) rebuilt.add(artifact.id);\n }\n }\n return params.current.objects.filter((artifact) => rebuilt.has(artifact.id));\n}\n\n/** Drops of a rebuild, newest artifact first, so a dependent index goes before its column. */\nexport function artifactDropSql(params: { artifacts: readonly ExtensionArtifact[] }): string[] {\n return [...params.artifacts].reverse().flatMap((artifact) => [...artifact.drop]);\n}\n"
|
|
48
48
|
],
|
|
49
|
-
"mappings": "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",
|
|
50
|
-
"debugId": "
|
|
49
|
+
"mappings": "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",
|
|
50
|
+
"debugId": "B0F3289A0E0F6E5B64756E2164756E21",
|
|
51
51
|
"names": []
|
|
52
52
|
}
|