run.ps1 обрывается на миграциях: NativeCommandError при ErrorActionPreference = Stop (#45) #46

Merged
NotBigGhost merged 1 commits from issue-45-runps1-migration-stderr into dev 2026-09-09 20:57:37 +03:00
1 Commits
Author SHA1 Message Date
NotBigGhostandClaude Opus 5 29a0e17fd1 run.ps1: запускать alembic так, чтобы stderr не убивал скрипт
Накат миграций из #36 обрывал запуск dev на Windows. Alembic пишет свои INFO в
stderr, а Windows PowerShell 5.1 при любом перенаправлении stderr нативного exe
превращает каждую строку в NativeCommandError. В начале скрипта стоит
$ErrorActionPreference = "Stop", поэтому ошибка терминирующая: лаунчер умирал
прямо на миграциях, uvicorn и vite не стартовали.

Комментарий в прежнем коде предупреждал про эту ловушку у "2>&1", но перенаправление
в файл наступает на неё ровно так же — проверено воспроизведением, управление
уходит в catch.

Теперь alembic запускается через Start-Process с редиректом обоих потоков в файлы:
его stderr вообще не проходит через поток ошибок PowerShell, решение принимается по
ExitCode. Оба сценария проверены в тех же условиях (ErrorActionPreference = Stop):
обычное применение — код 0, база новее ветки — распознаётся и запуск продолжается.

#45

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BoiJK9ux8peeyjLb8TYjFf
2026-09-09 20:56:37 +03:00