Learn Drizzle In 60 Minutes

Drizzle is a relatively new database ORM that aims to solve many of the problems with existing ORMs by being more flexible and performant. They have definitely accomplished their goals, but learning Drizzle can be quite overwhelming. In this crash course I will teach you everything you need to know about Drizzle to use it in your very own projects.
📚 Materials/References:
Prisma Vs Drizzle Video: • Is Drizzle Really Bett...
SQL Crash Course Video: • Learn SQL In 60 Minutes
Prisma Crash Course Video: • Learn Prisma In 60 Min...
🌎 Find Me Here:
My Blog: blog.webdevsimplified.com
My Courses: courses.webdevsimplified.com
Patreon: / webdevsimplified
Twitter: / devsimplified
Discord: / discord
GitHub: github.com/WebDevSimplified
CodePen: codepen.io/WebDevSimplified
⏱️ Timestamps:
00:00 - Introduction
00:57 - What Is Drizzle
02:42 - Drizzle Setup
07:12 - Schema Basics
10:30 - Migration Setup
15:47 - Finalizing Setup
18:57 - Schema Advanced
30:59 - Inserting Data
35:47 - Query Style Data Select
49:30 - SQL Style Data Select
54:14 - Updating Data
55:20 - Deleting Data
#DrizzleORM #WDS #Drizzle

Пікірлер: 117

  • @DavidBowmanJr
    @DavidBowmanJr2 ай бұрын

    elite video. 60-minutes, no fluff, no ads, well organized, from the documentation. greatest hair in the business.

  • @AkashPandya9
    @AkashPandya922 күн бұрын

    For some breaking changes, refer to official migration docs from drizzle. Apart from that, just a perfect and precise tutorial for drizzle. Kudos Kyle.

  • @poh9044
    @poh90443 ай бұрын

    I swear you read my mind, just in time! Thanks Kyle

  • @Metavibez-p3f
    @Metavibez-p3f10 күн бұрын

    OMG bro i was knee deep in a real time data migration in a project for work and drizzle is the perfect solution.

  • @hiplipfy
    @hiplipfy12 күн бұрын

    Just sharing, if you or anyone of you are deleting a typographical error. You can hold ctrl (in Windows) or hold option (in Mac) then press backspace to delete the whole string instead of manually backspacing in deleting each character, just something that will help a lot (or not) in expediting the entire coding experience. Great video btw :salute:

  • @theisoj
    @theisoj3 ай бұрын

    I waited this for so long and now it is here! Thanks Kyle!

  • @adanos2006
    @adanos20063 ай бұрын

    awesome. as always

  • @sabuein
    @sabueinКүн бұрын

    Thank you, Kyle.

  • @404-not-found-service
    @404-not-found-service3 ай бұрын

    Thank you, I was just looking for a Drizzle course, it seems like an orm that is currently very efficient

  • Ай бұрын

    Thanks!

  • @ruskasielu6261
    @ruskasielu62613 ай бұрын

    Thanks for the video. Drizzle is indeed pretty nice, but their documentation could be improved. Tried to set it up with SQLite and it took me a long time to figure out, and the help of a blog that someone who encountered the same issues as I did fortunately wrote. They should be clearer on the different steps, where to put what code (which files and dicrectory) and such. The whole system of migrations is also still pretty confusing so far.

  • @skyhappy

    @skyhappy

    3 ай бұрын

    You should add a pull request to improve it

  • @larrymcfarlane6202
    @larrymcfarlane62023 ай бұрын

    Let me save someone some time if you're getting an error like [PostgresError: unrecognized configuration parameter 'schema'] when trying to migrate. I copied and pasted my DATABASE_URL with the '?schema=public' param at the end. Check yours before diving too deep. :) Thanks for the video Kyle!

  • @iwas23
    @iwas232 ай бұрын

    Really nice video mate. Hope you cover the dynamic query in upcoming video 🎉🎉❤

  • @DivinPrince
    @DivinPrince3 ай бұрын

    Drizzle such a good ORM

  • @ronny-andrebendiksen4137
    @ronny-andrebendiksen413727 күн бұрын

    Great tutorial and very well explained! :) Could I request a follow-up video on how to handle migration sync between local dev environment and the production environment?

  • @user-qj4rr1rm8i
    @user-qj4rr1rm8i3 ай бұрын

    28:18 Thank you again for sharing your knowledge and efforts, Kyle. I have a question to ask while I'm watching this video. at 28:18 about the foreign key, // One way of handle a foreign key was like... export const UserPreferencesTable = pgTable("userPrefenrences", { id: uuid("id").primaryKey().defaultRandon(), userId: uuid("userId").references() }); // Another way of handle a foreign key... export const PostCategoryTable = pgTable("postCategory", { id: uuid("postId").references(() => PostCategoryTable.id).notNull(), categoryId: uuid("categoryId").references(() => CategoryTable.id).notNull() }, table => { pk: primaryKey({ columns: [table.postId, table.categoryId]}) }); Assuming, first one just refers to a foreign column, while second one is creating actual foreign key for foreign key, am I right?

  • @frontend_ko
    @frontend_ko3 ай бұрын

    Thanks for nice video

  • @mythmaker6155
    @mythmaker61553 ай бұрын

    the timing of this video and my learning thirst for DRIZZLE is right on time.... thanks

  • @carterv.31
    @carterv.313 ай бұрын

    Very nice video

  • @carltongordon
    @carltongordon3 ай бұрын

    Hey Kyle, can we get. video on how you plan your projects?

  • @ryujinwatatsumi
    @ryujinwatatsumi3 ай бұрын

    Can we get the link for the notion notes please ?

  • @eliuddyn
    @eliuddyn3 ай бұрын

    Amazing content 🔥🔥

  • Ай бұрын

    I created a repo following this tutorial and using neon for postgres Github rogercastaneda/drizzle-neon-pg-example. I also have the same implementation using sqlite (with turso) Github rogercastaneda/drizzle-turso-example

  • @Shubham-yc6nz

    @Shubham-yc6nz

    Ай бұрын

    Github link?

  • Ай бұрын

    @@Shubham-yc6nz KZread does not allow me to post urls. Add the following to the Github url rogercastaneda/drizzle-neon-pg-example

  • @roodood
    @roodood3 ай бұрын

    So in in Rails, I get these commands from the get-go: db:create, db:migrate db:rollback, db:drop etc and they do exactly as you imagine. Why doesn't drizzle ship them directly but instead require to write them myself?

  • @gregwalton331
    @gregwalton3312 ай бұрын

    Got everything working, thank you for this super tutorial, really clear!

  • @ayushgogna9732
    @ayushgogna97322 ай бұрын

    can i do nested inserts like prisma in drizzle if yes how ? like i want to create user with posts

  • @anuvette
    @anuvette3 ай бұрын

    Please make an in-depth tutorial on tanstack router

  • @fabienpineau1580
    @fabienpineau15802 ай бұрын

    For a small end of the year project in IT study, is it useful to use migration? I'm still struggling to understand the whole scope of migration in database

  • @destocot1729
    @destocot17292 ай бұрын

    anyone know the difference between Postgres.JS and the node-posgres (pg) packages seems that node-posgres is used a lot more

  • @mohammedshamil1626
    @mohammedshamil16262 ай бұрын

    Crazy timing bro, just started a project using drizzle a couple of weeks back

  • @ariassingh462
    @ariassingh462Ай бұрын

    Good tutorial. I won’t use it though as I will never utter the words ‘I am proficient in drizzle’.

  • @harunjeylan9362
    @harunjeylan93622 ай бұрын

    Thanks, bro, this is what I'm looking for.🙏

  • @muhammadisa440
    @muhammadisa4402 ай бұрын

    Thanks Kyle, it helped me a lot!

  • @nickwoodward819
    @nickwoodward81917 күн бұрын

    @23:30 - is it still a 'serial' here if that's how you did it in the original table? loving the video though :)

  • @YasharthSinghParihar-kj3mu
    @YasharthSinghParihar-kj3muАй бұрын

    Nice

  • @badzpowazny8172
    @badzpowazny8172Ай бұрын

    It has a few bugs. It replaces keys, changes the names of primary keys, and what's worse, by generating too long names it causes errors and does not add indexes correctly. It is incompatible with what Workbench generates.

  • @mrlectus
    @mrlectus28 күн бұрын

    Well i lot interest on in relationships, going back to use prisma

  • @DihCpsPsy
    @DihCpsPsy2 ай бұрын

    How can I push a new item to an array field? And how to remove one specific item?

  • @farzadmf
    @farzadmf3 ай бұрын

    It would have been nice to also share the code

  • @NathanielBabalola
    @NathanielBabalola3 ай бұрын

    I'm yet to adopt this as i heard they truncate tables a lot during migration. Until it gets better i don't think I'll. Laravel hardly truncates tables

  • @abeercodes
    @abeercodesАй бұрын

    if you see pg is not found in driver, install drizzle-kit version 0.20.14 I struggled a lot

  • @QuangPham-tj7kq

    @QuangPham-tj7kq

    Ай бұрын

    thanks for saving my day

  • @abeercodes

    @abeercodes

    Ай бұрын

    @@QuangPham-tj7kq actually you could struggle with this version too. defineCofig's configuration has been changed in the new version of drizzle-kit. Look at the documentation.

  • @PanicAtProduction
    @PanicAtProduction3 ай бұрын

    30:13 that’s why you should not use orms. Let’s think we have a production database, we want to add a new column which can not be a null. What are we going to do? Deleting whole table? This must be fixed. The same issue was in Strapi 2 years ago and my cluster died because of the db migration.

  • @user-xi9cw4wq6l

    @user-xi9cw4wq6l

    23 күн бұрын

    Newbie to relational db here, in this part what exactly should i do when i encounter this kind of issue?

  • @pallavggupta
    @pallavgguptaАй бұрын

    In 1 month, none of commands for drizzle work now, new version is out and so much has changed

  • @gregwalton331
    @gregwalton3312 ай бұрын

    Great tutorial, thank you. but, I am getting this error TypeError: Cannot read properties of undefined (reading 'Symbol(drizzle:Columns)') when I am trying to insert to a table. The migrate works perfectly fine, so can connect to the db. Here is the code. import "dotenv/config" import { db } from "./drizzle/db" import { tBrand } from "./drizzle/schema" async function main() { await db.insert(tBrand).values({ name: 'Andrew'}) } main() The db is a neon postgres db. thanks

  • @gregwalton331

    @gregwalton331

    2 ай бұрын

    sorted.

  • @jens-mikaelstjernberg1037
    @jens-mikaelstjernberg10372 ай бұрын

    But how do i update a table (eg. addidng a new column) without deleting the existing data in that? So far everytime I've done that the data gets the deleted and the drizzle doc doesn't include any information about how this would be done? Any suggestions are appreciated

  • @WatashiwaWatashi-zw7hy
    @WatashiwaWatashi-zw7hy10 күн бұрын

    is Drizzle ready for production?

  • @depreza68
    @depreza683 ай бұрын

    is there no repo? :(

  • @Shubham-yc6nz

    @Shubham-yc6nz

    Ай бұрын

    Anyone? Github

  • @nickwoodward819
    @nickwoodward81917 күн бұрын

    so wait, the 1:1 and 1:M references are the same?

  • @zivtamary
    @zivtamary3 ай бұрын

    why do we need this prisma replacement though?

  • @davidmuturi2078
    @davidmuturi2078Ай бұрын

    Where are the compiled notes Kyle?

  • @chaitanyasharma6270
    @chaitanyasharma62703 ай бұрын

    I love you

  • @dstick14
    @dstick143 ай бұрын

    Developers will do everything but learn SQL

  • @nepolianpratik9890

    @nepolianpratik9890

    3 ай бұрын

    And CSS

  • @chudchadanstud

    @chudchadanstud

    3 ай бұрын

    nmp. Should have made it intuitive from the start

  • @dstick14

    @dstick14

    3 ай бұрын

    @@chudchadanstud even still ORMs are not a solution then it's a bandage

  • @asthedreamfadesaway

    @asthedreamfadesaway

    3 ай бұрын

    I mean sure you should learn SQL first, but then if you want to prevent SQL injections manually or ignore type checking and find out whether it works or not during runtime, or want to manually review all the code for DB migrations to other DB (e.g. mysql to postgresql) you can use raw SQL

  • @beyourahi

    @beyourahi

    3 ай бұрын

    go cry in a corner

  • @imkir4n
    @imkir4n3 ай бұрын

    Wow i just completed watching prisma in 60mins

  • @eleah2665
    @eleah2665Ай бұрын

    Is this code available somewhere?

  • @adriangajdulewicz4257
    @adriangajdulewicz4257Ай бұрын

    Hands down the best drizzle video, they should pin it to their website lol. Amazing job!

  • @samwise8731
    @samwise87313 ай бұрын

    Prisma's schema syntax is way superior to this. It also helps with relationships. Drizzle's schema files is a mess.

  • @M1a2n3o43

    @M1a2n3o43

    3 ай бұрын

    Prisma schemas are so easy to read and understand. The prisma extensions also formats them pretty neat 😂. A sql schema is easier to read than drizzle imo

  • @das_daily_

    @das_daily_

    2 ай бұрын

    yeah but it so slow

  • @darkmift
    @darkmift2 ай бұрын

    is there a repo of your work here?

  • @intune6
    @intune6Ай бұрын

    I'm watching this tutorial and nothing works. in drizzle.config.ts db credentials connectionString not on type. driver is not assignable to type '"aws-data-api". aws-data-api is the only option I'm given for driver. What the hell is going on.

  • @BamboodjaOfficial
    @BamboodjaOfficial3 ай бұрын

    Eloquent -> Drizzle

  • @boltyk1
    @boltyk12 ай бұрын

    drizzle drizzle :)

  • @montebont
    @montebont3 ай бұрын

    OMG...how many wrappers do you need to simply access a SQL database ? These are solutions looking for a problem that does not exist :-( In my use cases I just load a million data records into my app. The browser and OS can handle that...

  • @jacob5403
    @jacob54033 ай бұрын

    it's an absolute nightmare, that returning function doesn't exist for mysql, I went through docs, cannot see a way to get at least "last insert id"

  • @webminsk7884
    @webminsk78842 ай бұрын

    Пушка!

  • @MiguelMartinez-ui8nl
    @MiguelMartinez-ui8nl4 күн бұрын

    interesting, ts tells me "pg" is not a possible value for "driver"

  • @ognjenmarceta

    @ognjenmarceta

    4 күн бұрын

    It seems that they changed the configuration object. This is from the official documentation: import { defineConfig } from 'drizzle-kit' export default defineConfig({ schema: "./schema.ts", dialect: 'postgresql', dbCredentials: { url: process.env.DB_URL, }, verbose: true, strict: true, })

  • @MiguelMartinez-ui8nl

    @MiguelMartinez-ui8nl

    4 күн бұрын

    @@ognjenmarceta yess thats what I was using now, thanks for the answer tho :D

  • @codie1372
    @codie13722 ай бұрын

    well it get complicated when you have a big database with alot of tables

  • @editedbycomradezeusman1642
    @editedbycomradezeusman16423 ай бұрын

    Kyle you were my inspiration for starting web dev, kyle please i need help debugging an error in my server code, i am using nodejs, please i need help

  • @imshivampancholi
    @imshivampancholi3 ай бұрын

    First View🤩

  • @Nodsaibot
    @Nodsaibot3 ай бұрын

    just use firebase lol

  • @frstylol

    @frstylol

    Күн бұрын

    skill issue ?

  • @jellyfish1772
    @jellyfish17723 ай бұрын

    Give us YOUR note😒

  • @SSPARTHIBAN-bq3hc
    @SSPARTHIBAN-bq3hc3 ай бұрын

    Devin AI can replace frontend developer anybody reply me pls

  • @nicko9958
    @nicko99584 күн бұрын

    3 months later and the video is already outdated...

  • @a1x5h04
    @a1x5h043 ай бұрын

    Prisma is Good but Drizzle is Better

  • @ayushgogna9732
    @ayushgogna97322 ай бұрын

    (mentioned the code missing below) I think you are missing a step when you set relation between many to many relation fir you have to set many(PostCategory) then you have to create another relation which is one(Post) one(Category) with reference and fieldId to connect each other with PostCategoryTable. I am talking about this step you are missing export const usersToGroupsRelations = relations(postToCategory, ({ one }) => ({ group: one(PostTable, { fields: [postToCategory.postId], references: [PostTable.id], }), user: one(CategoryTable, { fields: [postToCategory.categoryId], references: [CategoryTable.id], }), }));

  • @Tanner-cz4bd
    @Tanner-cz4bd3 ай бұрын

    but you just made an ecommerce tutorial with next.js/ prisma?!! can we get something Auth + crud + nextjs?

  • @TheRicoco2011

    @TheRicoco2011

    3 ай бұрын

    Nextjs + Auth + CRUD with Drizzle and how to host it on the cloud 🎉

  • @AdolfRizzler41

    @AdolfRizzler41

    3 ай бұрын

    Drizzle , prisma what next

  • @AdolfRizzler41
    @AdolfRizzler413 ай бұрын

    I didn't know sql hate is this strong💀

  • @BigFattyNat
    @BigFattyNat3 ай бұрын

    u know what else allows me to avoid writing raw sql queries? fookin any LLM bro, u said the query and it gives u the sql. fk these orms. raw sql is what runs im the background either way