Learn Drizzle In 60 Minutes

Поділитися
Вставка
  • Опубліковано 9 чер 2024
  • 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

КОМЕНТАРІ • 100

  • @DavidBowmanJr
    @DavidBowmanJr Місяць тому +11

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

  • @adriangajdulewicz4257
    @adriangajdulewicz4257 2 дні тому

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

  • @poh9044
    @poh9044 2 місяці тому +9

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

  • @404-not-found-service
    @404-not-found-service 2 місяці тому +1

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

  • @theisoj
    @theisoj 2 місяці тому +1

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

  • @mythmaker6155
    @mythmaker6155 2 місяці тому +1

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

  • @gregwalton331
    @gregwalton331 Місяць тому

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

  • @ruskasielu6261
    @ruskasielu6261 2 місяці тому +16

    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 2 місяці тому

      You should add a pull request to improve it

  • @harunjeylan9362
    @harunjeylan9362 Місяць тому

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

  • @mohammedshamil1626
    @mohammedshamil1626 Місяць тому +1

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

  • @muhammadisa440
    @muhammadisa440 Місяць тому

    Thanks Kyle, it helped me a lot!

  • @eliuddyn
    @eliuddyn 2 місяці тому +1

    Amazing content 🔥🔥

  • @jens-mikaelstjernberg1037
    @jens-mikaelstjernberg1037 Місяць тому +3

    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

  • @adanos2006
    @adanos2006 2 місяці тому

    awesome. as always

  • @iwas23
    @iwas23 Місяць тому

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

  •  20 днів тому

    Thanks!

  • @ryujinwatatsumi
    @ryujinwatatsumi 2 місяці тому +3

    Can we get the link for the notion notes please ?

  • @larrymcfarlane6202
    @larrymcfarlane6202 2 місяці тому +2

    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!

  • @DivinPrince
    @DivinPrince 2 місяці тому +3

    Drizzle such a good ORM

  • @user-qj4rr1rm8i
    @user-qj4rr1rm8i 2 місяці тому

    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?

  • @dstick14
    @dstick14 2 місяці тому +98

    Developers will do everything but learn SQL

    • @nepolianpratik9890
      @nepolianpratik9890 2 місяці тому +18

      And CSS

    • @chudchadanstud
      @chudchadanstud 2 місяці тому +1

      nmp. Should have made it intuitive from the start

    • @dstick14
      @dstick14 2 місяці тому

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

    • @asthedreamfadesaway
      @asthedreamfadesaway 2 місяці тому +10

      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 2 місяці тому

      go cry in a corner

  • @frontend_ko
    @frontend_ko 2 місяці тому

    Thanks for nice video

  • @roodood
    @roodood 2 місяці тому

    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?

  • @fabienpineau1580
    @fabienpineau1580 Місяць тому

    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

  • @carltongordon
    @carltongordon 2 місяці тому

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

  • @carterv.31
    @carterv.31 2 місяці тому

    Very nice video

  • @ayushgogna9732
    @ayushgogna9732 Місяць тому

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

  • @destocot1729
    @destocot1729 Місяць тому

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

  • @DihCpsPsy
    @DihCpsPsy Місяць тому

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

  • @anuvette
    @anuvette 2 місяці тому

    Please make an in-depth tutorial on tanstack router

  • @badzpowazny8172
    @badzpowazny8172 12 днів тому

    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.

  • @abeercodes
    @abeercodes 28 днів тому +2

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

    • @QuangPham-tj7kq
      @QuangPham-tj7kq 20 днів тому

      thanks for saving my day

    • @abeercodes
      @abeercodes 20 днів тому

      @@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.

  •  20 днів тому

    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 19 днів тому

      Github link?

    •  19 днів тому

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

  • @farzadmf
    @farzadmf 2 місяці тому +2

    It would have been nice to also share the code

  • @ariassingh462
    @ariassingh462 18 днів тому

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

  • @gregwalton331
    @gregwalton331 Місяць тому

    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

  • @YasharthSinghParihar-kj3mu
    @YasharthSinghParihar-kj3mu 20 днів тому

    Nice

  • @PanicAtProduction
    @PanicAtProduction 2 місяці тому +3

    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.

  • @depreza68
    @depreza68 2 місяці тому +2

    is there no repo? :(

  • @NathanielBabalola
    @NathanielBabalola 2 місяці тому +1

    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

  • @zivtamary
    @zivtamary 2 місяці тому

    why do we need this prisma replacement though?

  • @davidmuturi2078
    @davidmuturi2078 15 днів тому

    Where are the compiled notes Kyle?

  • @eleah2665
    @eleah2665 28 днів тому

    Is this code available somewhere?

  • @intune6
    @intune6 23 дні тому

    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.

  • @pallavggupta
    @pallavggupta 14 днів тому

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

  • @imkir4n
    @imkir4n 2 місяці тому

    Wow i just completed watching prisma in 60mins

  • @chaitanyasharma6270
    @chaitanyasharma6270 2 місяці тому

    I love you

  • @jacob5403
    @jacob5403 2 місяці тому +1

    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"

  • @darkmift
    @darkmift Місяць тому

    is there a repo of your work here?

  • @boltyk1
    @boltyk1 Місяць тому

    drizzle drizzle :)

  • @BamboodjaOfficial
    @BamboodjaOfficial 2 місяці тому

    Eloquent -> Drizzle

  • @montebont
    @montebont 2 місяці тому

    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...

  • @samwise8731
    @samwise8731 2 місяці тому +1

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

    • @M1a2n3o43
      @M1a2n3o43 2 місяці тому

      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_ Місяць тому

      yeah but it so slow

  • @imshivampancholi
    @imshivampancholi 2 місяці тому

    First View🤩

  • @webminsk7884
    @webminsk7884 Місяць тому

    Пушка!

  • @codie1372
    @codie1372 Місяць тому

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

  • @editedbycomradezeusman1642
    @editedbycomradezeusman1642 2 місяці тому

    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

  • @Nodsaibot
    @Nodsaibot 2 місяці тому +3

    just use firebase lol

  • @SSPARTHIBAN-bq3hc
    @SSPARTHIBAN-bq3hc 2 місяці тому

    Devin AI can replace frontend developer anybody reply me pls

  • @jellyfish1772
    @jellyfish1772 2 місяці тому

    Give us YOUR note😒

  • @a1x5h04
    @a1x5h04 2 місяці тому

    Prisma is Good but Drizzle is Better

  • @Tanner-cz4bd
    @Tanner-cz4bd 2 місяці тому +3

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

    • @TheRicoco2011
      @TheRicoco2011 2 місяці тому +2

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

    • @AdolfRizzler41
      @AdolfRizzler41 2 місяці тому

      Drizzle , prisma what next

  • @ayushgogna9732
    @ayushgogna9732 Місяць тому

    (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],
    }),
    }));

  • @AdolfRizzler41
    @AdolfRizzler41 2 місяці тому +2

    I didn't know sql hate is this strong💀

  • @BigFattyNat
    @BigFattyNat 2 місяці тому +1

    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