• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

supabase / cli / 30371179831
65%
develop: 65%

Build:
Build:
LAST BUILD BRANCH: gh-readonly-queue/develop/pr-6013-6ecf93dc019ec52b27d81603a20156c81e487cb0
DEFAULT BRANCH: develop
Ran 28 Jul 2026 03:02PM UTC
Jobs 1
Files 230
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

28 Jul 2026 02:59PM UTC coverage: 65.313%. Remained the same
30371179831

push

github

web-flow
fix(cli): render Go's caret, Detail, and 42704 hint in migration-apply errors (#5967)

## What changed

A failed migration statement in `db push` / `db reset` (remote migrate)
/ `migration up|down` now renders the same failure text as the Go CLI's
`(*MigrationFile).ExecBatch`
(`apps/cli-go/pkg/migration/file.go:88-132`), byte-for-byte:

```
ERROR: type "ltree" does not exist (SQLSTATE 42704)

Hint: This type may be defined in a schema that's not in your search_path.
      Use schema-qualified type references to avoid this error:
        CREATE TABLE example (col extensions.ltree);
      Learn more: supabase migration new --help
At statement: 0
CREATE TABLE test (path ltree NOT NULL)
                        ^
```

Previously the TS apply path emitted only `<driver text>\nAt statement:
<i>\n<stat>` — and with the real driver the head line was literally
`effect/sql/SqlError: Failed to execute statement`. No caret, no
`Detail`, no 42704 hint.

- **Driver boundary** (`legacy-db-connection.sql-pg.layer.ts`): a server
ErrorResponse found on the `SqlError` cause chain is now rendered as
pgconn's `PgError.Error()` — `<Severity>: <Message> (SQLSTATE <Code>)`
(pgconn `errors.go:51`) — and `LegacyDbExecError` carries the structured
`detail` / `position` fields (`detail` only when non-empty, `position`
only when > 0, matching Go's gates). Non-server failures keep the driver
text verbatim.
- **Apply mapper** (`legacy-migration-apply.ts`): `legacyMarkError` is a
byte-faithful port of Go's `markError` — the server position is consumed
against **UTF-8 byte** lengths (Go's `len(line)`), the caret line
replaces every line after the error line (Go's `append(lines[:j+1],
caret)` truncation), and position 0 / past-end / on-a-line-break leave
the statement untouched. All semantics were pinned by running Go's
`markError` directly on the same inputs. The `Detail` line and the
SQLSTATE-42704 undefined-type hint block (gated on Go's
`typeNamePattern` match + code `42704` + not ... (continued)

11288 of 17283 relevant lines covered (65.31%)

10.53 hits per line

Jobs
ID Job ID Ran Files Coverage
1 30371179831.1 28 Jul 2026 03:02PM UTC 230
65.31
GitHub Action Run
Source Files on build 30371179831
  • Tree
  • List 230
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #30371179831
  • daf3c866 on github
  • Prev Build on gh-readonly-queue/develop/pr-5966-4b62e7265d23874e12ab10f4ceda67b2d77329dc (#30362784918)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc