Did anyone else notice that when he logged the generated raw queries by Prisma , no join was taking place between the related tables , rather, instead of the join , it generated two back to back select queries between the related tables which means Prsima must be joining them through it's query engine as opposed to delegating the joins to the database engine in the application layer, this could have serious performance ramifications.
Yeah prisma's pretty cool Quick hot take - migrations kinda suck and `npx prisma db push` w/ a db branch model (like planetscale) is a way better dx IMO
Do you have any videos or can you recommend any docs regarding this? I'm kinda stuck on the whole migration thing. Dev migrations work great, but translating those changes to prod seems to be really unclear to me. Running deploy from vercel tells me that there's no changes and the error log says I should baseline. Ultimately I ended up changing my connection on my local machine to the prod database and resolving all of the migrations, but didn't seem like the correct way to do it.
i forgot where but i managed to create some scripts that have the migration and pushing set @@curiouslycory "prismaPush": "dotenv -e .env.local npx prisma db push ", "prismaMigrate": "dotenv -e .env.local npx prisma migrate ", "prismaStudio": "dotenv -e .env.local npx prisma studio" these are my scripts in my package.json file ( for npm run and i installed "dotenv": "^16.3.1", "dotenv-cli": "^7.3.0", one year too late but i feel your pain
Hey Kyle, great vid. One note though: In around 29:00 you create an index on email, but you already have the unique constraint, which will create an index for you (unique constraints are basically an index with extra functionality). So all that sorting or filtering will already use the index, and you just add duplicate second index on the same field.
Other alternatives to switching around the one-to-one relationship is a) when deleting, delete the dependent (preference) table first then the main table b) in the dependent table (preference) on the relationship put a cascade delete. In this case only need to delete the user table and it will auto delete related entry in the preference table.
This couldn’t have been a better timing. There is a new stack called t3-stack which uses nextjs, typescript, tailwind and tRPC. I WOULD LOVE you to create a video on tRPC because it simplifies and removes a shit ton of backend code. It also removes the schema so no graphQL because typescript safely infers the types so all you need to do is call the backend function and you’re good to go
Literally the reason I'm here and quite surpirsed this is the most upvoted comment lol, I just started playing around with it today and it is amazing! There's some new syntax in v10 which means most videos are outdated but it's not that different, would love a video from Kyle
Thanks to your video I was able to create a complex database when I have never written an SQL line in my life. Thank you so much for this video, Prisma is amazing!
@@moodyhamoudi Good question, I have blog page on my website and I'm storing the likes and views for each of the blog in a DB and displaying the same on the blog page. Additionally I've self hosted a web analytics tool - Umami where I'll also need a DB. I hope this answers you're question:)
I don't often leave comments but this video (and many others) was extremely helpful and to the point. This is the perfect way to learn something like Prisma and I'm tremendously grateful to you. There's so many people putting out content like this but you're one of the best. You make everything super approachable and have a knack for going in depth without being overwhelming. You've got a gift, keep on doing your thing man!
as i undertsand if you got for example one-to-many realtion you can connect models from both sides?You can make user and connect certain post or you can make post and connect your user?
as i undertsand if you got for example one-to-many realtion you can connect models from both sides?You can make user and connect certain post or you can make post and connect your user?
in vscode: command shift p -> Then select Typescript restart TS server. That will fix if the types don't refresh. You must be in a TS file or tsconfig to see this command appear.
Hey Kyle! Thanks for the Great video. Just a recommendation: for nodejs tutorials, you can put the VS code terminal on the right side instead of bottom, so both code and output is clearly visible. Keep up the amazing work
Nice and thorough tutorial. The others ones kinda jumped in fast or implemented prisma into prebuilt projects. I've never seen it before, so it's nice to get a rundown on how everything works with configuration :)
when i saw this kid a while back I thought damn .... he is good, but then I thought that he will not continue and will go away... here we are 1.51 million subs later..
I loved this tutorial, one thing I didn't understand is why you reconfigured the user preferences so they'd delete. Does Prisma not have a modifier for cascading?
Kyle youre brilliant man. I love learning from you, you give great practical tips, and details! One of the best developers on youtube. Thank you Kyle!!!
Nice video! I've never seen someone else research the prisma schema language that thoroughly! It's incredibly telling that it takes an entire hour to fully teach all of it, but that's why we're (me and a friend) are making a _*GUI for writing Prisma Schemas* (in development). I wonder if anyone else would benefit from that. This is mostly useful for larger projects, where a normal prisma schema could be 300+ lines long Please do leave any thoughts in the comments
I cannot thank you enough for this ❤ , there are folks creating a whole 10 hour course and cover exactly this much content. You are a GEM creating compact, filled and useful videos in practicle sense. Super thanks from India!
In the model relationship that you pointed out between User & Post - for the favoritedBy section. Wouldn't that be a many to many relationship? A Post could be favorited by Multiple Users couldn't it? 🤔
Wow, this video was freaing incredible! I was looking for an introduction to the most used ORMs around and you provided an mind-blowing deep-dive. But I have a few things to criticize: 1. When you tried to delete the user and userPreferences: It would have been way better to use the resp. delete function for the preferences first. As same as you would do when "cleaning" the DB usually. 2. The way of presentation: Don't get me wrong, your voice and the way everything is shown is perfectly fine. But you should consider talking a bit slower and also don't move around so much. It feels pretty hectic as if you're in a rush watching you live during the presentation. Slow down and chill a bit, we do not run away :) Anyway, overall 20 / 10 rating. Thanks for your amazing work!
Great work thanks. Came here looking for some more in-depth/practical cases around using the prisma migrate tool. It'd be interesting to see a tutorial talking exclusively on handling migrations considering multiple environments [local,stage,production]. Keep up the great work!
The day i will start reading documentation and reading every inch of it, that day is the day i will migrate to god tier level I know there are so much knowledge in documentation but gosh thinking about sitting and reading bunch of pages is just 😢
Top quality tutorial! Really detailed and "simplified". I am not usually writing this kind of messages, a like is usually enough. But I want to express my gratitude. Thank you! 😃
I will try to make a blog when I have the time to do so. My Notion notes are a mess that are really meant more for me to make the video than to learn from.
Such a great tutorial! I have a quetion, haven`t find anything on the documentation: how can I insert a PDF file into a db using prisma? I mean, I know that I must use Bytes type, but how exactly does it works?
at 33:25 you could've just restarted the typescript server or reloaded the window instead of closing the file or reopening vs code it does the work for me
This is an hour long video, but honestly there's like 6 hours of content here. You have done a fantastic job. Prisma is tuly amazing!
This guy has same haircut for years, like not even an hair goes in wrong direction 😂, love you bro tnx 💪❤️
Fun fact I got confused between web dev cody and him and I thought he lost his hair in the present 😂.
Fun fact: He use hair wigggg 😂
He is used css bro 😅
@@extremeweirdness1528 lmaooo
@@vikashviraj1232 I’m gonna buy it 😂
Just five minutes into your video and I've already received assistance with my formatter! This was much needed! I appreciate it, thanks a lot!!
Such a fantastic job of teaching prisma, no useless sidetracks, to the point. This is gold. I would give it way more than one like if I can!
You can, use another account
Did anyone else notice that when he logged the generated raw queries by Prisma , no join was taking place between the related tables , rather, instead of the join , it generated two back to back select queries between the related tables which means Prsima must be joining them through it's query engine as opposed to delegating the joins to the database engine in the application layer, this could have serious performance ramifications.
Yeah prisma's pretty cool
Quick hot take - migrations kinda suck and `npx prisma db push` w/ a db branch model (like planetscale) is a way better dx IMO
its cool to see you here, I first learnt about prisma in your link shortener video. It was awesome!
Do you have any videos or can you recommend any docs regarding this? I'm kinda stuck on the whole migration thing. Dev migrations work great, but translating those changes to prod seems to be really unclear to me. Running deploy from vercel tells me that there's no changes and the error log says I should baseline. Ultimately I ended up changing my connection on my local machine to the prod database and resolving all of the migrations, but didn't seem like the correct way to do it.
Hello, can you say why do they suck? I would like to know..
i forgot where but i managed to create some scripts that have the migration and pushing set @@curiouslycory
"prismaPush": "dotenv -e .env.local npx prisma db push ",
"prismaMigrate": "dotenv -e .env.local npx prisma migrate ",
"prismaStudio": "dotenv -e .env.local npx prisma studio"
these are my scripts in my package.json file ( for npm run
and i installed
"dotenv": "^16.3.1",
"dotenv-cli": "^7.3.0",
one year too late but i feel your pain
Hey Kyle, great vid. One note though: In around 29:00 you create an index on email, but you already have the unique constraint, which will create an index for you (unique constraints are basically an index with extra functionality). So all that sorting or filtering will already use the index, and you just add duplicate second index on the same field.
Other alternatives to switching around the one-to-one relationship is
a) when deleting, delete the dependent (preference) table first then the main table
b) in the dependent table (preference) on the relationship put a cascade delete. In this case only need to delete the user table and it will auto delete related entry in the preference table.
This couldn’t have been a better timing. There is a new stack called t3-stack which uses nextjs, typescript, tailwind and tRPC. I WOULD LOVE you to create a video on tRPC because it simplifies and removes a shit ton of backend code. It also removes the schema so no graphQL because typescript safely infers the types so all you need to do is call the backend function and you’re good to go
maintainer of create-t3-app here. would love if Kyle makes a video using tRPC!
+1 for this
Literally the reason I'm here and quite surpirsed this is the most upvoted comment lol, I just started playing around with it today and it is amazing! There's some new syntax in v10 which means most videos are outdated but it's not that different, would love a video from Kyle
@@nexxel I doubt it, the creator of tRPC aka Theo made a video making fun of kyle teaching method. dude is sassy
@@warsame2245 Theo isn't the creator of tRPC lol.
If you want to learn prisma, this tutorial is the best, it covers all you need.
I accidentally clicked on the notification but i learned what prisma is and this video is actually really useful to me Thank you
I came down to the comments to say the same thing. I thought this was going to be a Figma tutorial, but this is way cooler.
Thanks to your video I was able to create a complex database when I have never written an SQL line in my life.
Thank you so much for this video, Prisma is amazing!
You really should learn SQL though, at least just the basics. All of this would make so much more sense.
This is pure gold! I want to use prisma for my personal portfolio website. This video really helps! Thank you Kyle✨
respectfully why do you need a database for a portfolio site
@@moodyhamoudi Good question, I have blog page on my website and I'm storing the likes and views for each of the blog in a DB and displaying the same on the blog page. Additionally I've self hosted a web analytics tool - Umami where I'll also need a DB. I hope this answers you're question:)
@@nikhil182 very cool, thank you
I don't often leave comments but this video (and many others) was extremely helpful and to the point. This is the perfect way to learn something like Prisma and I'm tremendously grateful to you. There's so many people putting out content like this but you're one of the best. You make everything super approachable and have a knack for going in depth without being overwhelming.
You've got a gift, keep on doing your thing man!
as i undertsand if you got for example one-to-many realtion you can connect models from both sides?You can make user and connect certain post or you can make post and connect your user?
@@astkh4381 plz google it
this is one of the best tutorials out there to learn Prisma if you have zero experience with prisma .. amazing tutorial thank you 🙂
Hey Kyle, thankyou so much for making one of the most comprehensive guide on getting started with Prisma
I just see the future of backend development blown away with capabilities of Prisma ! Just Wow
Dude! This is probably the best tutorial on any topic that I've ever seen on TH-cam.
as i undertsand if you got for example one-to-many realtion you can connect models from both sides?You can make user and connect certain post or you can make post and connect your user?
in vscode: command shift p -> Then select Typescript restart TS server. That will fix if the types don't refresh. You must be in a TS file or tsconfig to see this command appear.
Very helpful - I usually space out when reading docs or listening to someone talking slowly but somehow you keep me awake lol.
Svaka cast na videu, nadam se da ce svima biti jasno kako prismu koristiti, kao sto je meni jasno
Tried this when it was its last version. Lots have changed since. I gotta check this out again, definitely in my to watch list. :)
i was trying to get a success one to one relation query for many days, and your video was the ligth to get it, thanks so much.
Thank you so much.
After I had watched this tutorial, I used Prisma in my graduation project.
A compact, mighty tutorial of prisma
If after npx prisma generate you can't see the correct autocompletion for the types, on vscode you can cmd+shift+p => TypeScript: Restart TS Server
Truly the best Prisma tutorial I could find. Always love your videos.
Hey Kyle! Thanks for the Great video.
Just a recommendation: for nodejs tutorials, you can put the VS code terminal on the right side instead of bottom, so both code and output is clearly visible.
Keep up the amazing work
miniDocumentation of prisma! If you go through its time stamps ! And use which you need if you forget! Superb❤❤
How did you know I'm just about to use Prisma in my new Team project?? Thank you always man
34:16 you can also Restart the Typescript server using the command palette
Thanks a bunch for this tutorial! It was a super crash course that got me up to speed. Keep doing what you're doing and all the best :)
Incredible! What a great video.
Could you please explain the integration with Graphql?
Nice and thorough tutorial. The others ones kinda jumped in fast or implemented prisma into prebuilt projects. I've never seen it before, so it's nice to get a rundown on how everything works with configuration :)
when i saw this kid a while back I thought damn .... he is good, but then I thought that he will not continue and will go away... here we are 1.51 million subs later..
every time i start a new tech you pop up with a gem OMG
Damn bro! I can't handle that amount of quality 🔥
Perfect video. Now everything is so clean for me. Thank you
This tutorial covers almost all crucial concepts of Prisma. Amazing job 👍🏻👍🏻
is this still relevant?
@@sidarthroy815 It is.
A deep prisma tutorial by Kyle?? Yes please
Wow, was about to embark with Mongoose, but after seeing this, and coming from SQL db experience, this is the way forward. Thanks Kyle!
Thank you for all the efforts that you put into creating such informative videos. It really helps a lot. Keep it up Kyle
Great timing. I am just now learning Prisma and I feel this tutorial is beneficial to getting it off the floor.
I loved this tutorial, one thing I didn't understand is why you reconfigured the user preferences so they'd delete. Does Prisma not have a modifier for cascading?
man your subjects are just the best, I LOVE THIS CHANNEL. !!
Bravo! Thanks for explaining Prisma from scratch ....🎉🌟😊
All in 60 minutes🤯... Great tutorial💯❤
Kyle youre brilliant man. I love learning from you, you give great practical tips, and details! One of the best developers on youtube. Thank you Kyle!!!
Nice video! I've never seen someone else research the prisma schema language that thoroughly!
It's incredibly telling that it takes an entire hour to fully teach all of it, but that's why we're (me and a friend) are making a _*GUI for writing Prisma Schemas* (in development). I wonder if anyone else would benefit from that.
This is mostly useful for larger projects, where a normal prisma schema could be 300+ lines long
Please do leave any thoughts in the comments
not really
@@TheLifeIsGoodTV well that's what they said about TypeScript
Looking forward to it!
Cool got a repo?
I've recently started using prisma and I needed a tutorial about it. Thank you for this video
Such a detailed yet concise video !
i will thank you from the start kyle! you're the man!
you need to restart your lsp to get latest autocompletions after prisma generate.
ctrl+shift+p > Developer: Reload window
The only comprehensive one, nice, thank you dude
Oh, but when i got to enums part, i didn't actually get, what enums are translated into
I cannot thank you enough for this ❤ , there are folks creating a whole 10 hour course and cover exactly this much content. You are a GEM creating compact, filled and useful videos in practicle sense. Super thanks from India!
Thanks for this. It was extremely useful and massively cut down the up and running time!
36:36 why not add an on delete cascade to the UserPreference -> User relation?
This course is better than documentation itself! 😊 I am waiting for a react-graphql project 💪
In the model relationship that you pointed out between User & Post - for the favoritedBy section. Wouldn't that be a many to many relationship? A Post could be favorited by Multiple Users couldn't it? 🤔
I noticed the same, it's a model mistake but it doesn't really matter, he just wanted to show multiple relationships.
Very comprehensive Prisma crash course very well delivered.
Now that is something I will use to setup my next project, thanks Kyle!
Amazing, finally a tutorial well explained, thanks a lot, regards from México :)
Great video!, literally everything I needed to complete my project.
This is super awesome! Thanks a lot, Kyle 🚀🚀
god dam, this is amazing. The documentation for Prisma is fantastic too.
such a great video! I come back to this a lot
Awesome content as always, been following you for years, thanks again Kyle ;)
Wow, this video was freaing incredible! I was looking for an introduction to the most used ORMs around and you provided an mind-blowing deep-dive.
But I have a few things to criticize:
1. When you tried to delete the user and userPreferences: It would have been way better to use the resp. delete function for the preferences first. As same as you would do when "cleaning" the DB usually.
2. The way of presentation: Don't get me wrong, your voice and the way everything is shown is perfectly fine. But you should consider talking a bit slower and also don't move around so much. It feels pretty hectic as if you're in a rush watching you live during the presentation. Slow down and chill a bit, we do not run away :)
Anyway, overall 20 / 10 rating. Thanks for your amazing work!
thanks for the video, quick ramp up on prisma
Can you give that notion link...
Great comprehensive tutorials. Thank you!
That is just great! plese do more of those one hour crash courses
Thanks for the great video!!!! I was able to do a personal project with the help of this video.
awesome video!!, very well explained, thank you so much for sharing this info, I learned a lot
Cheers from Central America
you must be hearing my inner voice. Thanks a lot 🙏🏼
Great work thanks.
Came here looking for some more in-depth/practical cases around using the prisma migrate tool.
It'd be interesting to see a tutorial talking exclusively on handling migrations considering multiple environments [local,stage,production].
Keep up the great work!
Great tutorial to learn Prisma. Thank you!
when i see this man make a video on the topic im researching i close all the other tabs
The day i will start reading documentation and reading every inch of it, that day is the day i will migrate to god tier level
I know there are so much knowledge in documentation but gosh thinking about sitting and reading bunch of pages is just 😢
your explanations are the best, thank you for your work
33:00 AHHH TYSM!! I was having it rough without the updated types :c
Top quality tutorial! Really detailed and "simplified". I am not usually writing this kind of messages, a like is usually enough. But I want to express my gratitude. Thank you! 😃
Yes, watch it. You're welcome.
Wow this is really awesome, can you please provide a blog based tutorial , or the notion link.
thank you
I will try to make a blog when I have the time to do so. My Notion notes are a mess that are really meant more for me to make the video than to learn from.
@@WebDevSimplified I want to be part of his mess.🤞🏽
Awesome explanation!
Thanks man 😎
Such a great tutorial! I have a quetion, haven`t find anything on the documentation: how can I insert a PDF file into a db using prisma? I mean, I know that I must use Bytes type, but how exactly does it works?
Solid tutorial , it was very easy to follow along.
Only if some people are getting some kind of errors. If you are getting the segmentation fault (core dumped) please use the v3.7 of prisma. 😊
Very impressive tutorial man, thank you very much !
Watched it till the end.
at 33:25 you could've just restarted the typescript server or reloaded the window instead of closing the file or reopening vs code it does the work for me
Thank you for the update. I appreciate your time in this.
Amazing video, thanks for the upload ❤
0:19 missing self relations! ahah thanks for the video!
Kyle, Thank you this course is amazing.
Wow! Amazing video! Looking forward for more typescript related tutorials!
Great work Kyle, thank You!
Great video.
A video on how you learn would be nice.
this tutorial is very useful for me !! big thanks to you !!!
This is a great tutorial. Kyle, thank you so much.
31:30 Deleting all the entries before migration is a good advice😂 (Should be done in production as well😜)