51 tabel i 12 039 wierszy uratowanych,
potem ERP, na którym fabryka działa codziennie
Fabryka suplementów straciła dostęp do swojego ERP produkcji i magazynu w chmurze stron trzeciej. Wyeksportowaliśmy wszystko przez API (51 tabel, 12 039 wierszy), przebudowaliśmy self-hosted na PostgreSQL i PostgREST, wzmocniliśmy dostęp rolami bazy danych i JWT, przetłumaczyliśmy 3040 ciągów interfejsu, dodaliśmy księgowanie kosztów, raporty plan vs rzeczywistość i eksporty do Excela, naprawiliśmy błąd podwójnego odpisu i skonfigurowaliśmy codzienne backupy.
Sytuacja
Księgowość produkcji i surowców fabryki żyła w backendzie w chmurze skonfigurowanym przez wykonawcę, który już odszedł. Dostęp zniknął, dane były zagrożone, a produkcja nie mogła się zatrzymać.
Co zrobiliśmy
Odzyskiwanie. Przywróciliśmy dostęp, wyeksportowaliśmy wszystkie 51 tabel i 12 039 wierszy przez warstwę REST, w tym 161 MB zdjęć przechowywanych inline, i zweryfikowaliśmy liczby.
Przebudowa. Stack self-hosted na osobnym, izolowanym serwerze: PostgreSQL, PostgREST i nginx, bez żadnego SaaS stron trzecich. Pełna dokumentacja techniczna z komentarzami linia po linii do odziedziczonego kodu.
Wzmocnienie. Dostęp oparty na rolach przeniesiony z klienta na serwer: role na poziomie wierszy w PostgreSQL i logowanie RPC z JWT. 42 z 50 stron admina widoczne dla nowych ról, 8 ograniczonych z założenia.
Język. Tłumacz w czasie działania zmienił około 3040 tajskich ciągów na rosyjski i angielski dla nowego zarządu.
Funkcje. Koszt towarów na surowiec, na kilogram i na jednostkę; eksporty do Excela z ponad siedmiu ekranów i raport “eksportuj wszystko”; raporty plan vs rzeczywistość, praca, czynsz i amortyzacja; koszt wydrukowany na formularzach produkcyjnych; audyt magazynu, który przywrócił 44 karty materiałowe i usunął 71 kart-sierot; błąd podwójnego odpisu znaleziony na dwóch zamówieniach produkcyjnych i poprawiony z wyraźną zgodą.
Operacje. Codzienne backupy bazy danych z mirrorem poza siedzibą. System jest używany przez fabrykę każdego dnia, ze zmianami zamawianymi i dostarczanymi prawie codziennie.