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.
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
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
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?
@@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:)
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!
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
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.
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.
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?
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 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 :)
I have tried this twice. Both times I got to 12:38 and get the error "error: Environment variable not found: DATABASE_URL." This is strange because it is defined in .env and the migration created the users table so the DATABASE_URL is correct Any advice?
What are you using to build the app? Some tools require you to add a prefix for environment variables to work. if you're using Vite you must add "VITE_" in the name of the variable, so in your case it'd become "VITE_DATABASE_URL"
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!
@33:20 or so, on a mac, in vscode, cmd+shift+p, then click "developer reload window" fixes it (refreshes it as well) Ive also had instances where I reserve to fix.
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!
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! 😃
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!
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 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?
Hey Kyle, thanks for your awesome work! Really love your videos. I suggest that you do a video covering GraphQL/Apollo just like this one, it would be great!
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? 🤔
Amazing course as always. Following you was the best decision I made a while back :) .. By the way, can't we get a copy of your course summary? It will really help as review notes :)
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.
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!
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.
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 😂
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
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
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!!
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.
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.
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 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
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.
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 :)
If you want to learn prisma, this tutorial is the best, it covers all you need.
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
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.
Thank you for all the efforts that you put into creating such informative videos. It really helps a lot. Keep it up Kyle
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.
Dude! This is probably the best tutorial on any topic that I've ever seen on RUclips.
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?
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
Very helpful - I usually space out when reading docs or listening to someone talking slowly but somehow you keep me awake lol.
Truly the best Prisma tutorial I could find. Always love your videos.
34:16 you can also Restart the Typescript server using the command palette
36:36 why not add an on delete cascade to the UserPreference -> User relation?
Thank you so much.
After I had watched this tutorial, I used Prisma in my graduation project.
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 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 :)
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.
Damn bro! I can't handle that amount of quality 🔥
Great timing. I am just now learning Prisma and I feel this tutorial is beneficial to getting it off the floor.
A compact, mighty tutorial of prisma
man your subjects are just the best, I LOVE THIS CHANNEL. !!
How did you know I'm just about to use Prisma in my new Team project?? Thank you always man
every time i start a new tech you pop up with a gem OMG
Awesome content as always, been following you for years, thanks again Kyle ;)
I just see the future of backend development blown away with capabilities of Prisma ! Just Wow
I have tried this twice. Both times I got to 12:38 and get the error "error: Environment variable not found: DATABASE_URL."
This is strange because it is defined in .env and the migration created the users table so the DATABASE_URL is correct
Any advice?
What are you using to build the app? Some tools require you to add a prefix for environment variables to work.
if you're using Vite you must add "VITE_" in the name of the variable, so in your case it'd become "VITE_DATABASE_URL"
same problem have you fixed it?
@@okkkk88612 did you fix it ?
Same problem no solution so far...
Great video!, literally everything I needed to complete my project.
i will thank you from the start kyle! you're the man!
Amazing, finally a tutorial well explained, thanks a lot, regards from México :)
Perfect video. Now everything is so clean for me. Thank you
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!
Great video🎉
You are very welcome!
Thanks for this. It was extremely useful and massively cut down the up and running time!
Now that is something I will use to setup my next project, thanks Kyle!
A deep prisma tutorial by Kyle?? Yes please
Such a detailed yet concise video !
Very impressive tutorial man, thank you very much !
Watched it till the end.
Incredible! What a great video.
Could you please explain the integration with Graphql?
I've recently started using prisma and I needed a tutorial about it. Thank you for this video
Wow! Amazing video! Looking forward for more typescript related tutorials!
god dam, this is amazing. The documentation for Prisma is fantastic too.
Svaka cast na videu, nadam se da ce svima biti jasno kako prismu koristiti, kao sto je meni jasno
This tutorial covers almost all crucial concepts of Prisma. Amazing job 👍🏻👍🏻
is this still relevant?
@@sidarthroy815 It is.
such a great video! I come back to this a lot
@33:20 or so, on a mac, in vscode,
cmd+shift+p, then click "developer reload window"
fixes it (refreshes it as well)
Ive also had instances where I reserve to fix.
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
Very comprehensive Prisma crash course very well delivered.
awesome video!!, very well explained, thank you so much for sharing this info, I learned a lot
Cheers from Central America
All in 60 minutes🤯... Great tutorial💯❤
This is super awesome! Thanks a lot, Kyle 🚀🚀
Amazing mate, as always!
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!
Wow, was about to embark with Mongoose, but after seeing this, and coming from SQL db experience, this is the way forward. Thanks Kyle!
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! 😃
Thanks for the great video!!!! I was able to do a personal project with the help of this video.
Bravo! Thanks for explaining Prisma from scratch ....🎉🌟😊
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!
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 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?
miniDocumentation of prisma! If you go through its time stamps ! And use which you need if you forget! Superb❤❤
33:00 AHHH TYSM!! I was having it rough without the updated types :c
Solid tutorial , it was very easy to follow along.
What extensions do you use? I didn't get hints like yours 33:18 even tho I'm using typescript and prisma extensions
Hey Kyle, thanks for your awesome work! Really love your videos. I suggest that you do a video covering GraphQL/Apollo just like this one, it would be great!
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.
Great comprehensive tutorials. Thank you!
Amazing course as always. Following you was the best decision I made a while back :) .. By the way, can't we get a copy of your course summary? It will really help as review notes :)
This course is better than documentation itself! 😊 I am waiting for a react-graphql project 💪
Great tutorial to learn Prisma. Thank you!
0:19 missing self relations! ahah thanks for the video!
I'm only 20 minutes in but damn is this thing super helpful, thank you for making this
this tutorial is very useful for me !! big thanks to you !!!
Kyle, you always do the best!
Thanks for the effort and making our lives a bit easier!😁
You are a genius content creator! 👍
Kyle, Thank you this course is amazing.
That is just great! plese do more of those one hour crash courses
30:31 bro, i want to define an enum such that the values in this enum are strings with more than 1 words. How do i do that ?
This is a great tutorial. Kyle, thank you so much.
Great work Kyle, thank You!
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.
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
watched the entire video, great content 👍🏻
Thank you for the update. I appreciate your time in this.
when i see this man make a video on the topic im researching i close all the other tabs
This video was so amazing, it reminded me of mongoose
Thank you Kyle!!
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
Much more helpful, you saved me for this contetiful tutorial.
your explanations are the best, thank you for your work