3.1 KiB
3.1 KiB
CashInput is_placeholder — failed deploy
Дата: 2026-06-23 Статус: Код написан, в прод не попал. Последняя транзакция (1770) не сохранилась.
Что было сделано
Бэкенд
Transaction.is_placeholder(Boolean, default false) — колонка добавлена в БД через alembic migration (add_is_placeholder_to_transaction)- API принимает/возвращает
is_placeholder, фильтр?is_placeholder=true/false - Миграция создалась и применилась корректно — колонка в БД есть
Фронтенд (CashInput.vue)
- Выбор валюты первым шагом (крупные кнопки $ ₽ € С̲ ₸), сохраняется в localStorage (
cash_last_currency) - Счёт — под валютой, все счета этой валюты. После добавления — сбрасывается на первый наличный (type=cash)
- is_placeholder =
acct.type !== 'cash'— если счёт cash, то обычная транзакция; если debit/credit — placeholder
Почему не сработало
Проект не был передеплоен. Docker-команды на macOS провалились:
docker compose exec postgres psql -U budget_user— не принял синтаксис-Uна macOS Dockerdocker exec budget-app-postgres-1— контейнера с таким именем нет (postgres — внешний, не в docker)- Код в контейнерах (budget-backend, budget-frontend) — старый, до правок
Текущее состояние (на момент 2026-06-23 сессии)
- postgres на хосте (Eagle), не в docker:
psql -h localhost -U budget_app -d budget_app - БД:
transaction(ед.ч.), есть колонкаis_placeholder - Последние транзакции — из старого Excel-импорта (2024-12-21 и старше), все
is_placeholder=false - Последний успешный билд и деплой — до правок is_placeholder
Уроки
- После кода — деплой. Код без деплоя эфемерен. Не считать задачу завершённой, пока
docker-compose build && docker-compose up -dне отработали на production. - Проверять деплой. После деплоя — зайти на сайт и ввести тестовую транзакцию. Если в сумме не прибавилась — деплой не взлетел.
- Docker на macOS — команды
docker compose exec ... -Uмогут не работать из-за конфликта флагов. Лучше сразуpsql -h host.docker.internalили прямойpsqlна хосте. - Контейнер postgres — если БД не в docker, не пытаться exec'ить. Сразу искать host-соединение.