6 Commits

Author SHA1 Message Date
mikhail f48aa3bcbd Запуск python напрямую вместо обёртки run.ps1
Профиль Windows Terminal вызывает .venv\Scripts\python.exe с
PYTHONUTF8=1 в окружении профиля, поэтому промежуточный PowerShell
и его настройка консоли больше не нужны.
2026-08-20 06:05:36 +03:00
mikhail 975934373b Отсев баз через source.exclude_databases
list_databases() прячит базы по массиву строк: подстрока без регистра
или маска со * ? [. Фильтр — единственное место рождения списка, поэтому
одинаков для меню, пульта и list; явное имя в CLI не трогает.
2026-08-20 06:02:55 +03:00
mikhail 9404d1dd08 Навигация стрелками по полям диалогов
Оба диалога наследуются от FormScreen с action_walk: у Screen нет
готового action_focus_next, поэтому биндинг стрелок на него молча
ничего не делал. Вверх и вниз ходят по полям, влево и вправо остаются
за курсором внутри поля ввода — биндинги намеренно без priority.
2026-08-20 05:54:16 +03:00
mikhail 9fdb02c72a TUI-пульт на Textual вместо текстового меню
Списки баз стенда и локальных дампов на одном экране, фильтр сужает их
на каждом набранном символе. Enter по базе открывает окно параметров
дампа с галочкой автоподнятия: снята — только dump, поднята — dump плюс
restore. Правки полей уезжают в копию конфига, config.json не трогается.

Ядро получило четыре хука для UI (лог, границы шагов, пароль, отмена),
run() читает вывод утилит построчно через Popen, поэтому журнал
наполняется во время работы pg_dump. Текстовый режим, CLI и --dry-run
ведут себя как раньше; без textual или вне tty пульт не запускается.

Журнал разворачивается на весь экран по F4 и сам на старте операции.
Раскладка адаптивная: narrow ниже 100 колонок, short ниже 32 строк.
Ctrl-хоткеи продублированы кириллицей — русская раскладка их не глушит.

Запуск через run.ps1 (venv, UTF-8-консоль, -Setup и -Tests).
Проверка — tests_tui.py: 46 тестов, TUI гоняется headless через Pilot.
2026-08-20 05:21:52 +03:00
mikhail b30406bbf6 Два режима работы и выбор базы из списка
Интерактивное меню (Dump+Restore / Dump / Restore) и CLI-команды
sync/dump/restore/list/dumps. База и файл дампа выбираются из списка
с фильтрацией по вводу, имя базы больше не зашито в конфиг.

Пароль берётся из конфига, переменной окружения или спрашивается с
терминала; без пароля утилиты вызываются с --no-password, иначе psql
подвисает на приглашении.
@
2026-08-20 03:18:04 +03:00
mikhail 1a72fbb720 pg-stand-sync: перенос БД со стенда на локальную PG 2026-08-20 02:59:04 +03:00