graphile / graphile/migrate

Make error reporting work for multiple current migrations

Open
#127 0 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
TypeScript
Stars
835
Forks
64
Avg merge
17m
Merged PRs (30d)
5

Description

### Summary

When I have multiple files in my current migration, and I make an error, I get something like:
```
:octagonal_sign: Error occurred at line 67, column 1 of "current.sql":
|
|
| )
| ^
| 42601: syntax error at or near ")"
error: syntax error at or near ")"
at Parser.parseErrorMessage (/Users/mgoldfield/Rewired/assemble/node_modules/pg-protocol/dist/parser.js:287:98)
at Parser.handlePacket (/Users/mgoldfield/Rewired/assemble/node_modules/pg-protocol/dist/parser.js:126:29)
at Parser.parse (/Users/mgoldfield/Rewired/assemble/node_modules/pg-protocol/dist/parser.js:39:38)
at Socket. (/Users/mgoldfield/Rewired/assemble/node_modules/pg-protocol/dist/index.js:11:42)
at Socket.emit (events.js:315:20)
at addChunk (internal/streams/readable.js:309:12)
at readableAddChunk (internal/streams/readable.js:284:9)
at Socket.Readable.push (internal/streams/readable.js:223:10)
at TCP.onStreamRead (internal/stream_base_commons.js:188:23)

Severity: ERROR
Code: 42601
```

However, this was actually on line 21 of my third current migration file.

It'd be nice if

### Steps to reproduce

Create multiple current migrations, and then make an error in one other than the first. The line numbers of the errors will not match up.

### Expected results

Something like "Error occurred at line 21 of ".

### Actual results

Error occurred at line 67, column 1 of "current.sql"

### Additional context

Graphile-migrate 0.12.0

### Possible Solution

I think we'll have to build a little source map in memory, storing file offsets?

Happy to take this one! Will approach it by storing file offsets unless you'd like a different approach.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.