« Tárhelyváltás »

Oké, akkor most megosztok veletek egy tanulságos történetet, ami részben az üzemeltetők, részben a fejlesztők részben pedig a megrendelők nem mindig megfelelő döntéseiknek köszönhetően plusz több órányi munkát okozott.

Adott a szitu: egy félig-meddig rosszul meghozott döntés miatt tárhelyet kell változtatni. Szerencsére nem a teljes tárhelyszolgáltatót, pusztán a tárhelyszolgáltatón belül egy fizikailag másik helyre, új felhasználó alá kell költözni. Ezzel nincs is gond, a szolgáltató párezer forintért elvégzi a műveletet.

Ideális világban (ahol már alapból a váltás sem lenne szükséges, hangsúlyozom, rossz döntések): üzemeltető beír három sort, esetleg négyet a terminálba, gyakorlatilag másol-beilleszt szinten odébb mozgatja a dolgokat, éjszaka átírjuk a doménekre és egyebekre vonatkozó beállításokat, reggelre már az új helyen van a szoftver, változatlanul, leállás nélkül.

Sajnos nem így történt.

Adott az első probléma: FUNCTION és VIEW használata a MySQL-ben. Sajnos, a MySQL-nél érezni a határokat, ha programozni akarunk. Nem egy Oracle a cucc, de még csak nem is egy PostgreSQL; egyszerűen vannak dolgok amik nem a legjobbak. De persze lehet, hogy ez nem is a MySQL baja, egyszerűen a PHPMyAdminé. FUNCTION-ök, de főként VIEW-ok exportálása lehetetlen. Ha valaki rájött hogyan kell, dobja az okosságot. Az alap szcenárió az, hogy a VIEW-ból egyszerűen egy üres tábla lesz. A leírótáblákból még ki lehet nagyjából olvasni a forráskódját, de ha ezt megpróbáljuk lefuttatni, tuti lesz benne valami elcsúszás, amire hibát dob.

Első jótanács: a VIEW-ok és egyebek forráskódja mindig legyen meg, hogy csak egy mozdulat legyen újra létrehozni.

Aztán folytatódik a történet, tesztelném a szoftvert, bejelentkezek, nem történik semmi. A bejelentkezes.phpfájl egyszerűen visszaugrik saját magára, és még a hibás adatok üzenet sem jelenik meg. Gyorsan belenézünk az éles fájlba, var_dump(); és társai. Persze az ember rögtön tippel pár dologra (én arra tippeltem, hogy nem írták át az adatbázis-elérést, ez lehet a gond, de ez annyira triviális, hogy nem is néztem): fájlok betöltése, .htaccess, jogosultságok stb. A fájl egészen egyszerűen eldobta a $_POST tartalmát. Mi lehet a baj? További nyomozás után látom, hogy a beallitasok.php a ludas. Létrehozok egy teszt.php fájlt, behívom benne a beállításokat, minden hibajelzés bekapcsolva. Megnyitom, hopp, átugrik a bejelentkezésre. Mi lehet a baj?

Kellett hozzá kis idő, de kibogoztam: van egy modul, ami ügyesen ha hiba van, és éles környezetben működünk, egy szomorú szmájlit mutat a júzernek, közben naplózza a létező összes környezeti változót, és ürít minden szuperglobált. A bejelentkezésre azért irányítódunk át, mert ha nem vagyunk bejelentkezve, semmilyen modul nem elérhető, egyszerűen zongorázunk a bejelentkezéshez. Ami azonban a hiba miatt nem működőképes.

A hibát mondanom sem kell, az okozta, hogy az adatbázis-elérés nem volt átírva, egyszerűen nem sikerült csatlakozni a szerverhez, és hopp, máris nem működik az oldal. Persze, arra kínosan ügyelek, hogy a júzer ne kapjon ötméteres hibaüzenetet, ez a része rendben volt.

Mely elemek voltak rosszak, hibásak, gyengék?

  • A megrendelő nem egyeztetett informatikussal, így szükséges volt a tárhelyváltoztatás;
  • elrontottam a tervezést, és egy soha nem futunk bele hibába futottam bele;
  • az üzemeltető nem ismerte a kódot, így nem tudta, hol és mit kell átírnia.

Hogyan lehet ezeken javítani?

  • Mint megrendelő, minden a szoftverrel akár minimálisan is kapcsolatos témát azonnal egyeztetünk a szoftverért felelős informatikussal. Mindent, mindig.
  • Ennél sokkal jobban átgondolni. Megtervezni, lerajzolni, lefuttatni gondolatban, tesztelni, akármi. Mindent, mindig.
  • Lehetőleg avassunk be mindenkit, aki fontos lehet a kód működésébe. Dokumentáljunk, még ha regényt is kell írni, hogyan működik a folyamat, mi jön miből. (Ha egy olyan fejlesztőnek kellett volna belenyúlnia, aki nem ismeri a működést, ötször ennyi időbe telt volna megtalálnia a problémát.) Mindent, mindig.

Egyszóval figyeljünk oda, dolgozzunk egymással és egymásnak, legyünk igényesek magunkkal szemben, és ami a legfontosabb: ha elrontunk valamit, akkor merjük leírni és azt mondani, hogy én voltam a hülye, legközelebb erre kell odafigyelnem. Senki sem tökéletes, mindenki vét hibákat. A jó munkaerőt nem a hibátlan munkavégzés, hanem az arra való törekvés, és a saját hibáinak felismerése, azokból való okulása jellemzi.

Zuhanyfüggöny.

Kommentek RSS ikon
A bejegyzéshez érkezett kommentek, amiket RSS csatornán is követhetsz.
Nem mondom, hogy tökéletes megoldás, de VIEW-ok és FUNCTION-ök kezeléséhez nagyon jól használható a MySQL Workbench. Persze ehhez az is kell, hogy az adott adatbázis szerver távolról is elérhető legyen.
Methos: igen, ez jó cucc, csak sajnos pont ezért esett ki a dolog, mert nincs hozzáférés távolról, csak PMA-n keresztül.

Tamás: ezek valószínűleg működnek, de nincs shell hozzáférésem, így én nem tudtam lefuttatni. Saját gépen célszerű kipróbálni, mit szól hozzá.
Új komment

Itt az adott bejegyzésben elhangzottakhoz szólhatsz hozzá. Ha primitív, csúnya, vagy bunkó erkölcsről teszel tanúbizonyságot, tuti, hogy kimoderállak és rosszat mondok rólad. A hozzászólás nem kötelező, amit írsz vállald föl!

Ezeket az adatokat - ha a böngésződ kezeli a kukikat - csak egyszer kell megadnod, később módosíthatod.

Ha van gravatarod - és a gravataros e-mail-címeddel kommentálsz -, akkor az megjelenik. Ha nincs, vagy nem tudod miaz, akkor olvasd el az útmutatót és regisztrálj.

Neved: E-mail címed (nem jelenik meg): Webszájtod (ha van): Kommented: Mennyi három és kettő összege?
Ez védelmi célokat szolgál, szimplán írd be a fenti összeadás összegét!

A kommentedet írhatod nagyobb mezőbe vagy akár formázhatod is, de ha nem szalonképes, akkor moderálom!

Ajánló
Ebben a témában, esetleg ezen a napon voltak még ilyenek is:

Kényelmes számítógépstand (2009. január 11., 10:58:41)
Rókaérzés (2008. május 11., 12:12:08)
SonyEricsson W300i (2006. november 23., 08:24:02)

Érdekességek
Száraz számok, pusztán csak tények:

Ez a bejegyzés 240 napja született, 988 szóból, és 4852 karakterből áll. Ajánlhatod bizonyos linkgyűjtő oldalaknak: