You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(driver-sql): report an unbounded text-family field left on a pre-existing varchar column (#12121) (#12733)
* wip(driver-sql): report an unbounded text-family field over a pre-existing varchar
* test(driver-sql): pin the unbounded text-family drift op, its silences, and the set
* chore(changeset): unbounded text-family column drift report
* docs(cli): correct the drift-op superlative this PR falsifies (#12121)
`manual_widen_varchar_to_text` is, by design, a second drift op
`os migrate apply` never applies — schema-drift.ts's own comments say so.
Two sites in cli.mdx claimed it was the only one:
- The `os migrate` command table (:546) said `apply` never reconciles
"the one drift op" that `multi-value-columns` migrates.
- The `#### os migrate multi-value-columns` section opener (:670) made the
same "the one drift op" claim.
Both now say "one of two" and name the new op next to
`manual_column_type_change`, without documenting it at length here — that
belongs to the driver, not this command's doc section.
Also reworded the `needs_confirm` category table's "Applied by" cell
(:635): unlike `manual_column_type_change` (applied by
`os migrate multi-value-columns --apply`), `manual_widen_varchar_to_text`
has no applier at all — nothing in the CLI references it. Left silently as
`os migrate apply` it would read as false for this one entry.
PM rework request: PR #12733 comment 5441049227.
---------
Co-authored-by: Claude <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: content/docs/deployment/cli.mdx
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -543,7 +543,7 @@ diverges from the live schema, and the physical column wins at write time.
543
543
|---------|-------------|
544
544
|`os migrate plan`| Dry-run: show how the database has drifted from metadata, categorised safe / needs-confirm / destructive (no changes applied) |
545
545
|`os migrate apply`| Reconcile the database to metadata. Applies loosening changes; destructive ones require `--allow-destructive`|
546
-
|`os migrate multi-value-columns`| Migrate a stale `varchar`/`text` column to `json` where the field declares `multiple: true` — the one drift op`apply` never reconciles for you. Dry run by default; `--apply` runs the statement the finding prints |
546
+
|`os migrate multi-value-columns`| Migrate a stale `varchar`/`text` column to `json` where the field declares `multiple: true` — one of two drift ops`apply` never reconciles for you. Dry run by default; `--apply` runs the statement the finding prints |
547
547
548
548
```bash
549
549
os migrate plan # Preview drift (no changes)
@@ -632,7 +632,7 @@ occupancy on its own.
632
632
| Category | Examples | Applied by |
633
633
|----------|----------|------------|
634
634
|`safe`| relax `NOT NULL` → nullable, widen a `varchar`, create a declared index, replace a legacy installation-wide unique with its per-organization composite |`os migrate apply` (and dev auto-reconcile) |
635
-
|`needs_confirm`| non-narrowing type change, rebuild a non-unique index whose columns changed |`os migrate apply`|
635
+
|`needs_confirm`| non-narrowing type change, rebuild a non-unique index whose columns changed |`os migrate apply`— except `manual_widen_varchar_to_text`, which nothing applies |
636
636
|`destructive`| drop an orphaned column or index, tighten `NOT NULL`, narrow a type, rebuild an index as `UNIQUE`|`os migrate apply --allow-destructive`|
637
637
638
638
#### Index drift
@@ -667,7 +667,7 @@ it reconciles via a table rebuild (copy → swap) that preserves your data.
667
667
668
668
#### `os migrate multi-value-columns`
669
669
670
-
The one drift op `os migrate apply` will **never** apply for you.
670
+
`os migrate apply` will **never** apply this drift op — and it isn't the only one: `manual_widen_varchar_to_text` (an unbounded text-family field left on a pre-existing `varchar` column) is also never applied, but has no `os migrate` subcommand of its own. This section covers the op that does.
671
671
672
672
A field that gains `multiple: true` over a database that already exists keeps
673
673
its old `varchar` / `text` column: the additive sync adds columns, and never
0 commit comments