51 таблица и 12 039 строк спасены,
затем ERP, на которой завод работает каждый день
Завод спортивного питания потерял доступ к своей ERP производства и склада на стороннем облаке. Мы выгрузили всё через API (51 таблица, 12 039 строк), пересобрали систему самостоятельно на PostgreSQL и PostgREST, усилили доступ ролями базы данных и JWT, перевели 3 040 строк интерфейса, добавили учёт себестоимости, отчёты план-факт и экспорт в Excel, исправили баг двойного списания и настроили ежедневные бэкапы.
Ситуация
Учёт производства и сырья завода жил в облачном backend, настроенном ушедшим подрядчиком. Доступ был потерян, данные под риском, а производство не могло останавливаться.
Что мы сделали
Восстановление. Вернули доступ, выгрузили все 51 таблицу и 12 039 строк через REST-слой, включая 161 МБ фото, хранившихся прямо в записях, и проверили количество.
Пересборка. Самостоятельный стек на отдельном изолированном сервере: PostgreSQL, PostgREST и nginx, без сторонних SaaS. Полная техническая документация с построчными комментариями к унаследованному коду.
Усиление. Ролевой доступ перенесён с клиента на сервер: роли уровня строк в PostgreSQL и RPC-вход с JWT. 42 из 50 админ-страниц видны новым ролям, 8 ограничены по дизайну.
Язык. Переводчик на лету превратил около 3 040 тайских строк в русский и английский для нового руководства.
Функции. Себестоимость по сырью, за килограмм и за единицу; экспорт в Excel с более чем семи экранов и отчёт «экспортировать всё»; отчёты план-факт, труд, аренда и амортизация; себестоимость, печатаемая на производственных формах; аудит склада, восстановивший 44 карточки материалов и удаливший 71 карточку-сироту; баг двойного списания, найденный на двух производственных заказах и исправленный с явного согласия.
Эксплуатация. Ежедневные бэкапы базы данных с зеркалом на другой площадке. Системой пользуются на заводе каждый день, изменения запрашиваются и выходят почти ежедневно.