`psql` outputs it's `NOTICE` messages to stderr causing the action to fail
- Vorherrschende Sprache
- TypeScript
- Sterne
- 25
- Forks
- 22
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
`psql` outputs it's `NOTICE` messages to stderr causing the whole action to fail even if the exit code is `0`.
The offending lines of code:
https://github.com/Azure/postgresql/blob/f82d2b25075a9092d3ee987db9c77bcfc43fc6bc/src/PsqlFilesExecutor.ts#L27-L33
https://github.com/Azure/postgresql/blob/f82d2b25075a9092d3ee987db9c77bcfc43fc6bc/src/PsqlFilesExecutor.ts#L38-L40
`NOTICE`'s should be treated as warnings not errors those would be `EXCEPTION`'s.
Maybe there should be an option for choosing to ignore stderr and instead rely on the exit code of `psql`
It's trivial to get a `NOTICE` to fail the action.
Consider the following output generated by `dotnet ef migrations script -s Proj.Bootstrap -p Proj.Data --idempotent -o migration.sql`:
```SQL
CREATE TABLE IF NOT EXISTS "__EFMigrationsHistory" (
"MigrationId" character varying(150) NOT NULL,
"ProductVersion" character varying(32) NOT NULL,
CONSTRAINT "PK___EFMigrationsHistory" PRIMARY KEY ("MigrationId")
);
START TRANSACTION;
....
COMMIT;
```
If the `__EFMigrationsHistory` table already exists, the action fails, because `psql:/migration.sql:5: NOTICE: relation "__EFMigrationsHistory" already exists, skipping` gets written to stderr.
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Lies src/PsqlFilesExecutor.ts an den verlinkten Zeilen, um nachzuverfolgen, wie psql stderr und sein Exit-Code behandelt werden. Reproduziere das im Issue beschriebene Migrationsszenario und überprüfe anschließend, dass NOTICE-Ausgaben die Action nicht mehr fehlschlagen lassen, während echte psql-Fehler dies weiterhin tun.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- postgresql, typescript
- Bereich
- databases, devops
- Issue-Typ
- Bug
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 42/100