In de nieuwste release van Prisma is een interessante feature toegevoegd die de flexibiliteit en gebruiksvriendelijkheid van Prisma naar een hoger niveau tilt: typed raw SQL-query's. Voor meer informatie: check de documentatie.
Wat is Prisma?
Prisma is een ORM (Object-Relational Mapping) tool die ons ontwikkelaars helpt om gemakkelijk met databases te werken door middel van een type-safe API. We kunnen hiermee data opvragen, invoeren, bijwerken en verwijderen zonder dat we ons zorgen hoeven te maken over de onderliggende SQL-query's. Prisma biedt een query builder die ervoor zorgt dat al je inputs en outputs getyped zijn, wat betekent dat je al tijdens het schrijven van je code weet of je query's correct zijn en wat voor data je kunt verwachten.
Oke, en wat is Typed Raw SQL?
Prisma heeft altijd al de mogelijkheid gehad om raw SQL te gebruiken voor situaties waarin de standaard query builder niet voldoende was. Dit is handig voor complexe query's of wanneer je specifieke database-functies wilt gebruiken die niet worden ondersteund door de query builder van Prisma. Het probleem met deze raw SQL was echter dat de invoer en uitvoer niet getyped waren. Dit betekende dat je pas tijdens het uitvoeren van je software zou ontdekken of je query goed was en wat voor soort data je terugkreeg. Best foutgevoelig dus en debuggen kan na een hele dag (of maand) van coden best een flinke klus worden.
Met de nieuwe "Typed Raw SQL"-feature kun je nu raw SQL schrijven in een speciaal bestand, waarin je gebruik kunt maken van named parameters en template literals om dynamische SQL-query's te maken. Tijdens het genereren van je Prisma client (met het commando prisma generate), wordt deze SQL geanalyseerd en gekoppeld aan je Prisma schema, waardoor zowel de input als de output van de query getyped zijn. Dit betekent dat je nog steeds de volledige kracht en flexibiliteit van SQL kunt benutten, maar nu met de zekerheid van type safety.
Waarom is dit handig?
Deze nieuwe feature biedt het beste van twee werelden: de flexibiliteit van raw SQL en de type safety van Prisma. Hier zijn een paar redenen waarom wij erg blij zijn met deze nieuwe feature:
- Type Safety: Je kunt met zekerheid je raw SQL-query's schrijven en weten dat de input en output correct zijn, wat fouten tijdens runtime vermindert.
- Flexibiliteit: Voor complexere query's of situaties waarin de Prisma query builder tekortschiet, kun je toch de volledige kracht van SQL benutten zonder type safety te verliezen.
- Dynamische SQL: Met template literals kun je krachtige, dynamische SQL-query's maken die nog steeds volledig getyped zijn.
- Onderhoudbaarheid: Omdat je query's getyped zijn, wordt je codebase makkelijker te onderhouden en te refactoren.
Voor wie is dit relevant?
Typed Raw SQL in Prisma biedt een krachtige oplossing voor ontwikkelaars die zowel de flexibiliteit van raw SQL als de veiligheid van type checking willen combineren. Dit maakt het werken met databases niet alleen robuuster, maar ook efficiënter en minder foutgevoelig. En aangezien wij regelmatig met complexe database-query's werken, is dit voor ons een zeer waardevolle toevoeging aan Prisma!