Am văzut mulți juniori care cred că Prisma Studio e singura cale de a vedea datele dacă folosesc Prisma ORM. Spoiler: nu e, și adesea te limitează masiv când treci de faza de local development. Hai să vorbim pe șleau despre când e util și când trebuie să îl închizi și să deschizi o unealtă nativă.
Prisma Studio: Bun pentru development, periculos în producție
Când am început un proiect cu vreo 12.000 de useri acum doi ani, am zis să folosesc exclusiv Prisma Studio pentru management rapid. E integrat direct, scrii npx prisma studio și ai interfața web în doi timpi și trei mișcări. E genial pentru că înțelege relațiile direct din schema.prisma. Vrei să adaugi un rând nou cu un foreign key? Îți dă dropdown direct, fără să cauți ID-uri obscure prin alte tabele.
Dar are o problemă uriașă de performanță. Pe proiectul respectiv, când am vrut să fac un query pe o tabelă de log-uri cu peste 100.000 de înregistrări, browser-ul a înghețat complet. Prisma Studio trage prea multe date în memorie și interfața devine inutilizabilă. În plus, nu poți scrie SQL nativ în el. Dacă ai nevoie de un JOIN complex care nu e mapat fix cum vrea Prisma, ești blocat.
TablePlus și DBeaver: Când ai nevoie de viteză și query-uri grele
Aici intervin clienții dedicați de baze de date. Eu personal folosesc TablePlus pe macOS de vreo 4 ani, dar pe Windows recomand DBeaver dacă vrei ceva moca și ultra-customizabil.
Merge excelent pentru rapiditate, dar design-ul vine cu un cost. TablePlus e rapid de speriat și are un UI extrem de curat, dar varianta gratuită te limitează la 2 tab-uri deschise simultan. DBeaver, pe de altă parte, e un tanc construit pe Eclipse. E urât, are o mie de butoane pe care nu le vei folosi niciodată, dar deschide dump-uri de 5GB fără să clipească și rulează orice query SQL obscur îi arunci.
La un audit recent pentru un client, am avut de optimizat niște indecși pe o bază de date PostgreSQL destul de stufoasă. Cu Prisma Studio era imposibil să văd planul de execuție (EXPLAIN ANALYZE). Am intrat cu TablePlus, am rulat query-ul, am văzut unde se bloca scanarea secvențială și am rezolvat problema în 10 minute.
Cum le împart eu în workflow-ul zilnic
Nu trebuie să alegi doar o singură tabără. Eu le folosesc combinat, în funcție de ce fac în acel moment:
- Prisma Studio îl deschid doar când scriu schema și fac seeding local. E cel mai rapid mod de a vedea dacă relațiile mele direct în UI funcționează cum am vrut, fără să mă chinui cu sintaxă SQL.
- TablePlus intră în scenă imediat ce am de rulat scripturi de migrare complexe, când verific datele din staging sau când am nevoie de query-uri ad-hoc pe care le salvez pentru mai târziu.
- DBeaver îl pornesc rar, doar când am de administrat chestii grele de sistem: utilizatori, permisiuni de baze de date sau monitorizare de conexiuni active.
Prisma Studio câștigă când vrei simplitate în local dev, dar moare rapid când baza de date începe să aibă greutate. Voi ce folosiți când schema.prisma nu mai e de ajuns?