[{"data":1,"prerenderedAt":282},["ShallowReactive",2],{"i-ic:outline-arrow-upward":3,"Footer_afPiwGMwNiEyV4syWzw87ovzxHAgs4iwKtCn4zqBf8E":8,"episode-\u002Fpodcasts\u002Fprisma-orm":16,"github-sponsor":184,"i-material-symbols:home":259,"i-ic:baseline-play-circle-filled-white":261,"i-material-symbols:ios-share":263,"i-cbi:deezer-logo":265,"i-vscode-icons:file-type-rss":267,"i-ri:heart-3-fill":270,"Brand_dlIOZD2O03VXPoFYukMOJnSnZRMTmJ0YwMKY5fNK8":272,"Duration_MiFZNqp8gruN5BRPuaep6ujzxVixbOexkuGKhddnzE":277},{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":7},0,24,false,"\u003Cpath fill=\"currentColor\" d=\"m4 12l1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8z\"\u002F>",["Island",9],{"key":10,"result":11},"Footer_afPiwGMwNiEyV4syWzw87ovzxHAgs4iwKtCn4zqBf8E",{"head":12},{"style":13},[14],{"innerHTML":15},":where(.i-mdi\\:github){display:inline-block;width:1em;height:1em;background-color:currentColor;-webkit-mask-image:var(--svg);mask-image:var(--svg);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;--svg:url(\"data:image\u002Fsvg+xml,%3Csvg xmlns='http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='black' d='M12 2A10 10 0 0 0 2 12c0 4.42 2.87 8.17 6.84 9.5c.5.08.66-.23.66-.5v-1.69c-2.77.6-3.36-1.34-3.36-1.34c-.46-1.16-1.11-1.47-1.11-1.47c-.91-.62.07-.6.07-.6c1 .07 1.53 1.03 1.53 1.03c.87 1.52 2.34 1.07 2.91.83c.09-.65.35-1.09.63-1.34c-2.22-.25-4.55-1.11-4.55-4.92c0-1.11.38-2 1.03-2.71c-.1-.25-.45-1.29.1-2.64c0 0 .84-.27 2.75 1.02c.79-.22 1.65-.33 2.5-.33s1.71.11 2.5.33c1.91-1.29 2.75-1.02 2.75-1.02c.55 1.35.2 2.39.1 2.64c.65.71 1.03 1.6 1.03 2.71c0 3.82-2.34 4.66-4.57 4.91c.36.31.69.92.69 1.85V21c0 .27.16.59.67.5C19.14 20.16 22 16.42 22 12A10 10 0 0 0 12 2'\u002F%3E%3C\u002Fsvg%3E\")}",{"id":17,"title":18,"author":19,"body":20,"categories":160,"description":162,"dsSlug":163,"duration":164,"episodeArtwork":165,"episodeNumber":166,"episodeType":167,"explicit":6,"extension":168,"guid":169,"links":170,"meta":171,"navigation":172,"path":173,"publicationDate":174,"season":175,"seo":176,"status":177,"stem":178,"subtitle":162,"tags":179,"videoLink":165,"__hash__":183},"podcasts\u002Fpodcasts\u002F028.prisma-orm\u002Findex.md","Prisma ORM","Double Slash",{"type":21,"value":22,"toc":148},"minimark",[23,30,34,44,62,75,87,90,95,100,103,114,118,121,125,128,132,135,139],[24,25,26],"ul",{},[27,28,29],"li",{},"Le son de Patrick est pas terrible, toutes nos escuses pour ça. Nous allons améliorer ça dans les prochains épisodes.",[31,32,18],"h2",{"id":33},"prisma-orm",[35,36,37],"blockquote",{},[38,39,40],"p",{},[41,42,43],"strong",{},"\"V2, j’oublie la V1 et je reprends depuis le début !\"",[38,45,46,49,50,53,54,57,58,61],{},[41,47,48],{},"Prisma"," est un ORM (object-relational mapping) open source écrit en ",[41,51,52],{},"Rust",". Il est compatible ",[41,55,56],{},"JavaScript\u002FTypeScript"," et ",[41,59,60],{},"Go",".",[38,63,64,65,71,72,74],{},"Au départ, ",[66,67,48],"a",{"href":68,"rel":69},"https:\u002F\u002Fwww.prisma.io\u002F",[70],"nofollow"," dans sa version 1, était une sorte de générateur d'API. Vous lui donniez une DB et il vous donnait accès à des routes et une API graphQL pour récupérer les data.\nAprès un virage à 180 degrés, la V2 n'a plus rien a voir avec la V1. Pour la V2, ",[41,73,48],{}," est désormais un ORM.",[38,76,77,78,81,82,86],{},"Un ",[41,79,80],{},"ORM"," est un système qui vous permet de gérer les data d'une base de données en manipulant des objets. Les objets représentent les data et vous n'écrivez normalement jamais de query vers la base. Par exemple, pour une table \"user\", vous avez accès à un objet ",[83,84,85],"code",{},"User"," et vous interrogez la base via cet objet.",[38,88,89],{},"Il gère plusieurs systèmes de base de données : Postgres \u002F Mysql \u002F SQlite \u002F SQLServer \u002F MongoDB",[38,91,92,94],{},[41,93,48],{}," est présenté sou 4 modules : CLIENT \u002F MIGRATE \u002F STUDIO \u002F DATA PLATFORM ( early stage )",[96,97,99],"h3",{"id":98},"client","Client",[38,101,102],{},"Cette partie gère:",[24,104,105,108,111],{},[27,106,107],{},"la connexion avec les DB.",[27,109,110],{},"le schéma des modèles",[27,112,113],{},"la récupération des data et des queries",[96,115,117],{"id":116},"migrate","Migrate",[38,119,120],{},"Cette partie gère les migrations. Pour mettre à jour une DB en prod quand vous modifiez les modèles en développement.",[96,122,124],{"id":123},"studio","Studio",[38,126,127],{},"Cette partie offre une interface de visualisation dans le style PHPMyAdmin, mais en beaucoup mieux !",[96,129,131],{"id":130},"data-platform","Data Platform",[38,133,134],{},"Un service en early stage pour gérer un DB via une interface cloud.",[31,136,138],{"id":137},"outil-recommandé","Outil recommandé",[24,140,141],{},[27,142,143],{},[66,144,147],{"href":145,"rel":146},"https:\u002F\u002Fsyncinc.so",[70],"syncinc.so",{"title":149,"searchDepth":150,"depth":150,"links":151},"",2,[152,159],{"id":33,"depth":150,"text":18,"children":153},[154,156,157,158],{"id":98,"depth":155,"text":99},3,{"id":116,"depth":155,"text":117},{"id":123,"depth":155,"text":124},{"id":130,"depth":155,"text":131},{"id":137,"depth":150,"text":138},[161],"Technology","Un épisode \"explore\" dans lequel Alex nous présente l'ORM Prisma.","DS_028_prisma",3456,null,28,"full","md","e5cc08fb14a96639f9b6a98f199d47f8",[],{},true,"\u002Fpodcasts\u002Fprisma-orm","2021-10-19",1,{"title":18,"description":162},"published","podcasts\u002F028.prisma-orm\u002Findex",[180,181,182],"prisma","orm","node","7nOntX6jXw8sDIWbzBF2ephzc4fCxgmLQf6VJeEiT44",{"data":185},{"organization":186},{"sponsorsListing":187},{"name":188,"fullDescriptionHTML":189,"url":190,"shortDescription":191,"activeGoal":192,"isPublic":172,"sponsorable":196},"sponsors-double-slash-podcast","\u003Cp>Le podcast des dev pour dev par des dev !\u003C\u002Fp>\n\u003Cp>Des podcasts et des videos sur les technologie WEB modernes.\u003C\u002Fp>\n\u003Cp>A deux ou avec un invité, on discute des tendances, des nouvelles technologies, des meilleures pratiques actuelles.\u003C\u002Fp>\n\u003Cp>🎥 \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fchannel\u002FUCp5DGBAX2XNJXeOVAo7bICQ\">Youtube\u003C\u002Fa>\u003Cbr>\n🎙️ \u003Ca href=\"https:\u002F\u002Fspoti.fi\u002F317wtvD\">Spotify\u003C\u002Fa> ▪️ \u003Ca href=\"https:\u002F\u002Fapple.co\u002F3fTguFo\">Apple Podcast\u003C\u002Fa> ▪️ \u003Ca href=\"https:\u002F\u002Fbit.ly\u002F3i0hDgy\">Deezer\u003C\u002Fa> ▪️ \u003Ca href=\"https:\u002F\u002Fbit.ly\u002F31aKKYd\">Google Podcast\u003C\u002Fa>\u003Cbr>\n🌐 \u003Ca href=\"https:\u002F\u002Fdouble-slash.dev\u002F\">Double Slash DEV\u003C\u002Fa>\u003C\u002Fp>","https:\u002F\u002Fgithub.com\u002Fsponsors\u002Fdouble-slash-podcast","Le podcast des dev pour les dev par des dev !",{"description":193,"percentComplete":194,"targetValue":194,"title":195},"L'ensemble des charges seront couvertes. Service de stockage et abonnement aux services utilisés.",70,"$70 per month",{"sponsors":197},{"edges":198},[199,205,211,217,223,229,235,241,247,253],{"node":200},{"id":201,"name":202,"url":203,"avatarUrl":204},"MDQ6VXNlcjEwMDMwNw==","Clément Delmas","https:\u002F\u002Fgithub.com\u002Fclem","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F100307?u=878ed4b7cdf920879b57046f19e434fea2c7d296&v=4",{"node":206},{"id":207,"name":208,"url":209,"avatarUrl":210},"MDQ6VXNlcjI3NTYwOQ==","Thibaud Lepretre","https:\u002F\u002Fgithub.com\u002Fkakawait","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F275609?v=4",{"node":212},{"id":213,"name":214,"url":215,"avatarUrl":216},"MDQ6VXNlcjE5MTQxNjA=","David Pollet","https:\u002F\u002Fgithub.com\u002Fdavidpollet","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1914160?u=4b3da16383b9fa810fd0980f756000709403ab45&v=4",{"node":218},{"id":219,"name":220,"url":221,"avatarUrl":222},"MDQ6VXNlcjYzMzMzOTY=","Eric","https:\u002F\u002Fgithub.com\u002Fericledonge","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6333396?u=e9e541a6b9125d8e8b558fdd914c847eb36db695&v=4",{"node":224},{"id":225,"name":226,"url":227,"avatarUrl":228},"MDQ6VXNlcjg4OTk3Njg=","François Gardien","https:\u002F\u002Fgithub.com\u002FYoutch","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F8899768?u=85ae8c4299c380bcec02e99e9364624f3ce333c7&v=4",{"node":230},{"id":231,"name":232,"url":233,"avatarUrl":234},"MDQ6VXNlcjEwMTc2NjI2","Antharuu","https:\u002F\u002Fgithub.com\u002Fantharuu","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F10176626?u=3f6ef490b330d5a9bbaa3137560b5d1d4cf13a4a&v=4",{"node":236},{"id":237,"name":238,"url":239,"avatarUrl":240},"MDQ6VXNlcjEwMTg2OTkz","Adrien Zaganelli","https:\u002F\u002Fgithub.com\u002FadrienZ","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F10186993?u=08189ef8cf708a61445b6a57cf7a2aa361d484af&v=4",{"node":242},{"id":243,"name":244,"url":245,"avatarUrl":246},"MDQ6VXNlcjI2MTQyMzgz","Thomas Lemoine","https:\u002F\u002Fgithub.com\u002Fthomaslemoine","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F26142383?u=4c68175459b0ae1f8c68c48c40f2ae148747675d&v=4",{"node":248},{"id":249,"name":250,"url":251,"avatarUrl":252},"MDQ6VXNlcjY1NzM3MTMx","Valentin Grenier","https:\u002F\u002Fgithub.com\u002Fvalentin-grenier","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F65737131?u=0ba0cc828412f6655a948c6a82f69b9c909f8fd9&v=4",{"node":254},{"id":255,"name":256,"url":257,"avatarUrl":258},"U_kgDOBipZwA","Hebrard Frederic","https:\u002F\u002Fgithub.com\u002Ffrederichebrard","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F103438784?v=4",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":260},"\u003Cpath fill=\"currentColor\" d=\"M4 21V9l8-6l8 6v12h-6v-7h-4v7z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":262},"\u003Cpath fill=\"currentColor\" d=\"M12 2C6.475 2 2 6.475 2 12s4.475 10 10 10s10-4.475 10-10S17.525 2 12 2m-2 14.5v-9l6 4.5z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":264},"\u003Cpath fill=\"currentColor\" d=\"M6 22q-.825 0-1.412-.587T4 20V10q0-.825.588-1.412T6 8h3v2H6v10h12V10h-3V8h3q.825 0 1.413.588T20 10v10q0 .825-.587 1.413T18 22zm5-6V4.825l-1.6 1.6L8 5l4-4l4 4l-1.4 1.425l-1.6-1.6V16z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":266},"\u003Cpath fill=\"currentColor\" d=\"M18.774 5.051c.185-1.072.457-1.747.757-1.748c.561 0 1.015 2.341 1.015 5.228s-.455 5.229-1.016 5.229c-.23 0-.443-.4-.614-1.064c-.27 2.439-.831 4.115-1.48 4.115c-.5 0-.953-1.007-1.256-2.594c-.207 3.018-.727 5.161-1.334 5.161c-.381 0-.73-.848-.987-2.231C13.55 20 12.834 22 12 22s-1.551-2-1.86-4.853c-.255 1.383-.6 2.231-.986 2.231c-.609 0-1.128-2.142-1.335-5.161c-.3 1.587-.752 2.594-1.256 2.594c-.649 0-1.21-1.676-1.481-4.115c-.169.668-.382 1.064-.613 1.064c-.562 0-1.017-2.34-1.017-5.229S3.908 3.3 4.471 3.3c.3 0 .57.676.758 1.748C5.527 3.2 6.014 2 6.564 2c.653 0 1.219 1.7 1.487 4.168c.262-1.8.658-2.941 1.1-2.941c.624 0 1.154 2.252 1.351 5.393C10.874 7.01 11.41 6 12 6s1.128 1.011 1.5 2.62c.2-3.141.727-5.393 1.351-5.393c.444 0 .84 1.145 1.1 2.941C16.219 3.7 16.785 2 17.439 2c.547 0 1.035 1.2 1.335 3.051m-16.2 5.3C2.258 10.355 2 9.31 2 8.017s.258-2.337.576-2.337s.578 1.044.578 2.337s-.254 2.338-.578 2.338Zm18.848 0c-.32 0-.577-1.045-.577-2.338s.257-2.337.577-2.337S22 6.724 22 8.017s-.258 2.338-.576 2.338Z\"\u002F>",{"left":4,"top":4,"width":268,"height":268,"rotate":4,"vFlip":6,"hFlip":6,"body":269},32,"\u003Cdefs>\u003ClinearGradient id=\"SVGvSi4fdXe\" x1=\"30.06\" x2=\"225.94\" y1=\"30.06\" y2=\"225.94\" gradientTransform=\"matrix(.11 0 0 .11 2 2)\" gradientUnits=\"userSpaceOnUse\">\u003Cstop offset=\"0\" stop-color=\"#e3702d\"\u002F>\u003Cstop offset=\".11\" stop-color=\"#ea7d31\"\u002F>\u003Cstop offset=\".35\" stop-color=\"#f69537\"\u002F>\u003Cstop offset=\".5\" stop-color=\"#fb9e3a\"\u002F>\u003Cstop offset=\".7\" stop-color=\"#ea7c31\"\u002F>\u003Cstop offset=\".89\" stop-color=\"#de642b\"\u002F>\u003Cstop offset=\"1\" stop-color=\"#d95b29\"\u002F>\u003C\u002FlinearGradient>\u003C\u002Fdefs>\u003Crect width=\"28\" height=\"28\" x=\"2\" y=\"2\" fill=\"#cc5d15\" rx=\"6.01\" ry=\"6.01\"\u002F>\u003Crect width=\"26.91\" height=\"26.91\" x=\"2.54\" y=\"2.54\" fill=\"#f49c52\" rx=\"5.47\" ry=\"5.47\"\u002F>\u003Crect width=\"25.82\" height=\"25.82\" x=\"3.1\" y=\"3.1\" fill=\"url(#SVGvSi4fdXe)\" rx=\"5.14\" ry=\"5.14\"\u002F>\u003Cpath fill=\"#fff\" d=\"M6.82 6.16v3.83a15.31 15.31 0 0 1 15.3 15.3h3.83A19.14 19.14 0 0 0 6.81 6.17zm0 6.45v3.72a8.97 8.97 0 0 1 8.96 8.97h3.72A12.69 12.69 0 0 0 6.81 12.6zm2.62 7.44a2.63 2.63 0 0 0-2.63 2.62a2.63 2.63 0 0 0 2.63 2.63a2.63 2.63 0 0 0 2.63-2.63a2.63 2.63 0 0 0-2.63-2.63z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":271},"\u003Cpath fill=\"currentColor\" d=\"M16.5 3C19.538 3 22 5.5 22 9c0 7-7.5 11-10 12.5C9.5 20 2 16 2 9c0-3.5 2.5-6 5.5-6C9.36 3 11 4 12 5c1-1 2.64-2 4.5-2\"\u002F>",["Island",273],{"key":274,"result":275},"Brand_dlIOZD2O03VXPoFYukMOJnSnZRMTmJ0YwMKY5fNK8",{"head":276},{},["Island",278],{"key":279,"result":280},"Duration_MiFZNqp8gruN5BRPuaep6ujzxVixbOexkuGKhddnzE",{"head":281},{},1785405176762]