@t3dotgg I have learned a lot from you Theo; especially from the t3 tutorial video. Any chance you could post a video showing how you'd refactor the Prisma part of the Chirp T3 Tutorial app to Drizzle?
Having Drizzle make just a single query is big. Because that means the DB's own query optimizer has the full context and can optimize the query better than we all ever could.
This was the main reason I gave up on TypeORM. Even the simplest queries did some back-and-forth, which is fine for the old days where the DB was hosted on the same machine as the application, but when your DB is on AWS or some cloud provider, as is the current trend, you really start to notice that extra latency.
@@gosnooky but in general why would you have it in different locations ? Maybe I don’t get it but aren’t you supposed to always have your server “close” to your db ?
You forgot to mention that they have also a "drizzle-zod" plugin that generates customizable validators from the table schemas. Even less redundant work to think about.
That is the main reason why I switched to drizzle, honestly. Having to manually update every schema of an endpoint after a migration really is a dealbreaker for me
@@thecarpenter_son yeah, there are some out there but they aren't nearly as good as drizzle-zod. prisma-zod-generator, for an example, generates a lot of garbage code that will stick with you and every change requires you to run a script to regenerate all the files. With drizzle, I change a line of code and there you go. Everything that depends on it just changes altogether.
Ive been using drizzle for about 2 months now and i love it. At first making complex queries was a pain but since they released the new documentation my devepler experience has increased exponentially
Surely you'll eventually drive yourself mad if you fall for a new shiny ORM every 6 months. Just commit to SQL. You don't understand the power of the dark side! Anyway, I understand that most people that don't like SQL turn to ORMs, but I can't help feeling these are exactly the people that should not be using them. Still, good to be aware of Drizzle.
@@ziad_jkhan I've spent years with C, C#, Java, several ORMs, and am a big proponent of OOP, so I'm pretty comfortable with types. In the end, one gets tired of chasing the next new shiny thing and the best policy becomes sticking to standards that last.
@@netssrmrz Typescript standards will last as long as JS does and the Drizzle syntax is based on the sql syntax so it'll last as well. Anyway, if you want standards that last then the world of programming is probably not the best place to be for you.
I love drizzle for it's flexibility, the default query builder offers a lot of flexibility for my backend projects and the relational queries are great for less complex queries
Defining a schema in front/back end code must make DBA heads explode. I like how Supabase cli just dumps out the typescript from Postgres. Now I can do database stuff where it belongs... in the database!
Is there a way to get Zod schemas as well? I like the way Zod works and how you can get Typescript types from the schema objects. The Zod schemas can be used for many different things, such as validation data from an endpoint, or for forms.
@@PerpetualWarr Objection is amazing but it falls short when trying to support TypeScript. They do an ok job but because they started with JS, some design decisions were made to makes it hard to support TS, so it takes a lot longer to adopt new features. Also, the main author of Objection did a post 6 months ago saying it's essentially going to get sunset and he's working on Kysely now, so updates will be few and far between. With Drizzle, everything is TS-native (as in they don't even try to support other languages like Prisma does). Because of this, they can adopt new features much faster and they can also take advantage of TS features like decorators to make the API much nicer to use, and I think Prisma doesn't do that. They're also a lot easier to use via other schema-based ORMs. I think with this latest update where Drizzle will make exactly one call to the DB will actually beat out Prisma in a lot of cases in terms of performance, although I'll have to benchmark to confirm. All in all, I like the direction the project is headed and a lot of big tech personalities are starting to back it (check the sponsers)
I was anti-third-party-ORM for a long time, even to the point of writing a huge custom ORM from scratch (using pg for parameterized SQL queries) for my main enterprise-grade app's API that isn't getting any less complex or any easier to maintain as the app grows... But now after seeing this video and reading the Drizzle docs, I'm convinced. Time to do some prototyping... Only thing that might be an issue is post-processing operations like converting strings of |-separated values to arrays or JSON blobs into objects. We will see how that goes in the prototype.
@@andrewsherman4610 Thank you! Trying to do this now with an arrayFromPSV type and apparently I can't return a string array from toDriver (as I would have to when converting a pipe-separated or comma-separated string to an array) and the only type I can return is a string? Is there a way around this? Thanks in advance! code: const arrayFromPSV = (psv: string) => customType({ dataType() { return 'string[]'; }, toDriver(value: string): string[] { return value.split('|'); }, })(psv); export { arrayFromPSV } Error: type '(value: string) => string[]' is not assignable to type '(value: string) => string | SQL'. Type 'string[]' is not assignable to type 'string | SQL'.ts(2322) index.d.ts(300, 5): The expected type comes from property 'toDriver' which is declared here on type 'CustomTypeParams'
Patiently waiting for Drizzle to start working with next-auth and then I’m switching from prisma. I might keep it around for migrations if it’s problematic in Drizzle.
There is probably a lot to say about ORMs in general, but last week I heard Rich Harris himself, presenting SvelteSnaps and he said a thing that quite surprised me. He said "all the ORMs are stupid, just use simple sql". I personally don't agree, for many reasons. For instance, having types without having to coerce them, manage migration up and down without funky scripts here and there. However, i would love to know your opinion about this Theo, and also do you know why he might say something like this? I am not saying to read his mind, but considering his approach on things I find that statement to be, let's say weird. Thanks ❤
To all of you who want to start using drizzle orm as theo or josh said it. It is not mature doesn't have a adapter for the planet scale database with next auth as prisma does nor has as refined docs, unsigned integer or as big of a community . Right after this video was released planet scale introduced the scaler pro plan where you have unlimited read and write which mitigates the cost issue. starting from $39 it can go up to $999 8 vCPU and 32 GB RAM in AWS which much be sufficient for almost all use cases and vast majority of people. If you need more than this you are already a multi million dollar company and that's that. Untill Drizzle goes to version 1 I am waiting and will go with prisma and planetscale.
I've got a strange feeling lately, that you are like a flag - changing direction in development tools as the wind blows. I don't implicate it's hurtful to try out new things and tell people about it, but rather leap from one framework/package to the other and praise it for being innovative.
is using Prisma in production save ? I have heard so much negativity regarding ORM . One argument with which they come up is if you really want to use ORM use raw query instead of ORM native function ? Is there a really performance lacking in native ORM function ?
An issue I have with a lot of these new ORM's is their lack of support for more esoteric things like points, geometry and bitwise operations. They also seem to assume that there is ONE application that uses the database. I maintain several projects that use different parts of the same DB, and I need to import the same schema into each project which can be a huge pain - Prisma made this easy with a centralized schema definition, but definitions in TS means you have to duplicate the same code across different applications, or create private NPM libs (with all the extra maintenance that entails). Whilst ORM's do make it easier for relations, column name mappings, and the aforementioned esoteric use cases, there's just something magical about raw queries.
I'm starting to migrate one of our FastAPIs across to nitro and drizzle ORM to push it onto the edge, I can concur with Theo - Andrew and the Drizzle team are kicking out the jams. I recommended in the Prisma slack that Prisma start letting us define out models in typescript ... a domain layer, if you will, we've bet big on Prisma in the rest of our infrastructure but Drizzle is certainly one to watch.
updating the db with manually created types seems tedious. supabase autogenerates a typed client for your api calls based on running a schema types gen command against the database (works the opposite way as a types generator using introspection sometimes called reflection eg reflect metadata)
Looks nice! I didn't like the prisma performance either (though I didn't care about it too much, no issues so far), but there's always this voice that says "this is slow be careful". Glad to see the new syntax. I was hesitant to try it before because of the syntax. I'm a frontend dev, sure I can write some sql but I absolutely hate it, and select('*').from('users') really isn't far from just writing the sql directly. Will have to try it at some point for my next project. Not sure if the typescript table definitions can beat prisma's neatly formated schema, but I'm willing to give it a go. Especially if T3 stack comes with a 'pick your ORM' option. Dropping prisma doesn't seem like the best idea since so many people like it, but this would be really nice to have set up for auth and trpc and all that without the extra work required.
One year after this video, and they still have unresolved issues opened 1 year ago, basic things like adding a WHERE in an index or properly parse a remote SQL schema. They often ignore other devs submitting feedback or even pull requests asking to fix those important issues... so I am not really optimistic about the future of this project, hopefully another team with the same concept but better attitude will take on this soon.
I adapted this tool based on RUclipsrs praising it over Prisma, and I’m seeing issues on a fundamental level. Like it’s not able to insert booleans correctly, and it doesn’t set default values for fields even though specified that it should in its schema. Heck its introspection tool generates types with syntax errors at times. Drizzle doesn’t have a 1.0 release yet, and any upgrade can include drastic changes that can break functionality. While it’s true it has great performance, but what good is that if the result you’re getting is incorrect? You can mitigate performance but correctness…yikes! I have to go back to rethink what ORM to use.
How about migrations? One thing I hate about prisma is that you need to be connected to a database to generate new migration files, haven't tried drizzle though
I didn't get a notification for this video, it was probably because youtube uses Firebase which comes with a multitude of problems. They're trying to silence you
Most ORMs came after Knex (and quite a lote of them are built on it), they proposed a different API and the tides went full on TypeORM and Prisma... Now a new one rises, and guess what? It does the same Knex already was doing. Dang twisted ecosystem
*lists a bunch of massive problems that most other ORMs don't suffer from* "That doesn't mean Prisma's bad." I think that's exactly what it means, Theo.
The key to understanding joins and sql is to realize that you have think set-based, not procedural based like most programming languages (even OO ones). The tendency of beginners is to rely on cursors because they are procedural in nature, but the true power behind sql queries is when you think in sets. In mathematics we learned sets by thinking about the regions between two intersecting circles.
Crazy how this video has 35k views but the GitHub repo only has 8k stars. GET ON IT FOLKS github.com/drizzle-team/drizzle-orm/
I think a lot of your audience already starred Drizzle weeks or months ago to be honest
Drizzle is fast and se-x-y
@t3dotgg I have learned a lot from you Theo; especially from the t3 tutorial video. Any chance you could post a video showing how you'd refactor the Prisma part of the Chirp T3 Tutorial app to Drizzle?
You want people to go and blindly star something they have no experience with?
Can't wait to see which tool you'll be using next week!
Ah, the classic, why learn SQL once, when you can spend every month learning a new ORM library and every second month debugging it.
This is exactly why Drizzle exists - so that you can learn SQL instead of learning an ORM.
yeh, orms having query syntac similar to sql are the best, Learn once and use everywhere
Lol
What's an ORM. SQL pg all the war
To have types.
On top of that, Drizzle orm has the best memers
Having Drizzle make just a single query is big. Because that means the DB's own query optimizer has the full context and can optimize the query better than we all ever could.
This was the main reason I gave up on TypeORM. Even the simplest queries did some back-and-forth, which is fine for the old days where the DB was hosted on the same machine as the application, but when your DB is on AWS or some cloud provider, as is the current trend, you really start to notice that extra latency.
@@gosnooky but in general why would you have it in different locations ? Maybe I don’t get it but aren’t you supposed to always have your server “close” to your db ?
@@ajnart_ Serverless. Your DB isn't going to be deployed on your lambda.
You forgot to mention that they have also a "drizzle-zod" plugin that generates customizable validators from the table schemas. Even less redundant work to think about.
That is the main reason why I switched to drizzle, honestly. Having to manually update every schema of an endpoint after a migration really is a dealbreaker for me
@@lucas.p.f prisma has that too
@@thecarpenter_son it does? How? And where?
@@thecarpenter_son yeah, there are some out there but they aren't nearly as good as drizzle-zod. prisma-zod-generator, for an example, generates a lot of garbage code that will stick with you and every change requires you to run a script to regenerate all the files. With drizzle, I change a line of code and there you go. Everything that depends on it just changes altogether.
So they have a built-in Joi? Am I reading this right?
Ive been using drizzle for about 2 months now and i love it. At first making complex queries was a pain but since they released the new documentation my devepler experience has increased exponentially
Prisma is like the hot goth girlfriend with lots of tattoos and piercings.
It's a lot of fun first but comes with a lot of baggage.
Are you going to replace prisma with drizzle in the T3 stack?
I don't see it changing for the next 6 months, but maybe he'll announce it for 2024
it happen
Surely you'll eventually drive yourself mad if you fall for a new shiny ORM every 6 months. Just commit to SQL. You don't understand the power of the dark side! Anyway, I understand that most people that don't like SQL turn to ORMs, but I can't help feeling these are exactly the people that should not be using them. Still, good to be aware of Drizzle.
You're probably not familiar with type safety in typescript, and the many additional benefits it provides
@@ziad_jkhan I've spent years with C, C#, Java, several ORMs, and am a big proponent of OOP, so I'm pretty comfortable with types. In the end, one gets tired of chasing the next new shiny thing and the best policy becomes sticking to standards that last.
@@netssrmrz Typescript standards will last as long as JS does and the Drizzle syntax is based on the sql syntax so it'll last as well. Anyway, if you want standards that last then the world of programming is probably not the best place to be for you.
@@ziad_jkhan Gotta call the fire dept for that burn wow
Drizzle is great but we need alternative of Prisma studio. Prisma studio is amazing.
DataGrip if your org has jetbrains is very nice to use even if kinda bloat.
Building this right now! alpha.seltzer.dev
@@_heyglassy Hmm is there more info?
Isn’t Prisma studio is literally just db viewer ? Dbeaver can do that for more than a decade now
Drizzle gets better with time. Really very good syntax
Why use SQL when you can use SQL on top of JavaScript on top of SQL?
Would you update the t3 stack to change Prisma with Drizzle or not yet or never?
The fact that this video shows after fireship video of ORMs is a chefs kiss
I love drizzle for it's flexibility, the default query builder offers a lot of flexibility for my backend projects and the relational queries are great for less complex queries
I use Prisma as a pure migration tool. My backend isn't even in Typescript. I connect to it using my kotlin backend. It's great for that honestly.
Been waiting for a Theo primer about Drizzle! Thanks! 👍
My only problem is that drizzle isn’t even at version 1 yet so wouldn’t consider it stable. That is a big gamble for a production app
react native is also not at version 1 ...
thanks theo, it would be awesome when it becomes an alternative or maybe default option in the t3 stack
Defining a schema in front/back end code must make DBA heads explode. I like how Supabase cli just dumps out the typescript from Postgres. Now I can do database stuff where it belongs... in the database!
Interesting. I wouldn't assume that just because it uses a single query that it will always be faster.
OMG i'm so hyped to start using the new drizzle relational queries ASAP this was like the one blocker stopping me from moving forward with it!!
Is there a way to get Zod schemas as well? I like the way Zod works and how you can get Typescript types from the schema objects. The Zod schemas can be used for many different things, such as validation data from an endpoint, or for forms.
Big bro said in a week. In 2 hours were already at 7.1k. W Theo
This vid was part of an earlier livestream, so theo isn't THAT influential lol
😭
drizzle mentioned yeah baby
I was wondering how it compares to something like NestJs's TypeORM..what are some key differences in terms of usage? performance?
chose Drizzle after looking at Prisma, Sequelize, Kysely, TypeORM, and MikroORM to replace Objection
And it has been amazing
Objection is awesome and my usual pick. Can you explain why drizzle is better and in what way?
@@PerpetualWarr Objection is amazing but it falls short when trying to support TypeScript. They do an ok job but because they started with JS, some design decisions were made to makes it hard to support TS, so it takes a lot longer to adopt new features.
Also, the main author of Objection did a post 6 months ago saying it's essentially going to get sunset and he's working on Kysely now, so updates will be few and far between.
With Drizzle, everything is TS-native (as in they don't even try to support other languages like Prisma does). Because of this, they can adopt new features much faster and they can also take advantage of TS features like decorators to make the API much nicer to use, and I think Prisma doesn't do that. They're also a lot easier to use via other schema-based ORMs.
I think with this latest update where Drizzle will make exactly one call to the DB will actually beat out Prisma in a lot of cases in terms of performance, although I'll have to benchmark to confirm.
All in all, I like the direction the project is headed and a lot of big tech personalities are starting to back it (check the sponsers)
TypeORM is the best, you can customize it like you want
3:47 lol the copyright at the bottom of their website has since been removed.
I was anti-third-party-ORM for a long time, even to the point of writing a huge custom ORM from scratch (using pg for parameterized SQL queries) for my main enterprise-grade app's API that isn't getting any less complex or any easier to maintain as the app grows...
But now after seeing this video and reading the Drizzle docs, I'm convinced.
Time to do some prototyping...
Only thing that might be an issue is post-processing operations like converting strings of |-separated values to arrays or JSON blobs into objects. We will see how that goes in the prototype.
You can do it with drizzle! We have custom types to do any kind of post-processing
@@andrewsherman4610
Thank you!
Trying to do this now with an arrayFromPSV type and apparently I can't return a string array from toDriver (as I would have to when converting a pipe-separated or comma-separated string to an array) and the only type I can return is a string? Is there a way around this? Thanks in advance!
code:
const arrayFromPSV = (psv: string) =>
customType({
dataType() {
return 'string[]';
},
toDriver(value: string): string[] {
return value.split('|');
},
})(psv);
export {
arrayFromPSV
}
Error: type '(value: string) => string[]' is not assignable to type '(value: string) => string | SQL'.
Type 'string[]' is not assignable to type 'string | SQL'.ts(2322)
index.d.ts(300, 5): The expected type comes from property 'toDriver' which is declared here on type 'CustomTypeParams'
changing the type for driverData to string[] made the type error go away, now let's see if it actually works in implementation...
@@owenwexler7214 Update? :)
you should have shown the benchmarks, too many people still think prisma must be faster because Rust!
Patiently waiting for Drizzle to start working with next-auth and then I’m switching from prisma. I might keep it around for migrations if it’s problematic in Drizzle.
I've already starred Drizzle, technically if I unstar it they'll also see how powerful Theo's community is, no?
Does it already properly support db pull & db push workflow, instead of using migrations?
friendship ended with Prisma
Now
DrizzleORM
is my
best friend
Can't wait for Drizzle replacement, plain SQL
Talk about timing!! I just started using Drizzle about a week ago!
Theo is like Steven A Smith of coding. He feels out what everyone likes/thinks already and praises it.
Stephen*
Hi
Any chance they'll get Cassandra/ScyllaDB support?
Snoop Dogg approves of Drizzle.
Fo shizzle
There is probably a lot to say about ORMs in general, but last week I heard Rich Harris himself, presenting SvelteSnaps and he said a thing that quite surprised me. He said "all the ORMs are stupid, just use simple sql". I personally don't agree, for many reasons. For instance, having types without having to coerce them, manage migration up and down without funky scripts here and there. However, i would love to know your opinion about this Theo, and also do you know why he might say something like this? I am not saying to read his mind, but considering his approach on things I find that statement to be, let's say weird. Thanks ❤
To all of you who want to start using drizzle orm as theo or josh said it. It is not mature doesn't have a adapter for the planet scale database with next auth as prisma does nor has as refined docs, unsigned integer or as big of a community .
Right after this video was released planet scale introduced the scaler pro plan where you have unlimited read and write which mitigates the cost issue. starting from $39 it can go up to $999 8 vCPU and 32 GB RAM in AWS which much be sufficient for almost all use cases and vast majority of people. If you need more than this you are already a multi million dollar company and that's that.
Untill Drizzle goes to version 1 I am waiting and will go with prisma and planetscale.
Finally I've been waiting for you to pick up drizzle, right now it feels a little rough but it had great potential
I've got a strange feeling lately, that you are like a flag - changing direction in development tools as the wind blows.
I don't implicate it's hurtful to try out new things and tell people about it, but rather leap from one framework/package to the other and praise it for being innovative.
Always good to see advancements in the ORM space, this looks like a really nice DX.
It’s crazy how every time a new orm releases and we are like wow this is so simple. This is so good. 😂
Will check it out. Does it Support geospatial data?
Are we having drizzle option or tutorial to use it with t3 stack ??
Are you saying that if you use drizzle there is less of a need for tRPC?
is using Prisma in production save ? I have heard so much negativity regarding ORM . One argument with which they come up is if you really want to use ORM use raw query instead of ORM native function ? Is there a really performance lacking in native ORM function ?
any way to convert prsima schema to drizzle schema ?
this shit is bugged as fuck, its impossible to code with typescript, its full of any everywhere is the code at least with prisma you got correct type
how is defining relationships inside the code using the orm "cleaner"??? Any single responsibility principle enjoyers here?
DRY too. If it's defined in the code that is using it then you'r going to be repeating, surely? Which is a maintenance no no.
An issue I have with a lot of these new ORM's is their lack of support for more esoteric things like points, geometry and bitwise operations. They also seem to assume that there is ONE application that uses the database. I maintain several projects that use different parts of the same DB, and I need to import the same schema into each project which can be a huge pain - Prisma made this easy with a centralized schema definition, but definitions in TS means you have to duplicate the same code across different applications, or create private NPM libs (with all the extra maintenance that entails). Whilst ORM's do make it easier for relations, column name mappings, and the aforementioned esoteric use cases, there's just something magical about raw queries.
Any thoughts on supabase, Theo? I love all your stack but lately I’ve found it easier to scaffold new projects with supabase
You have nice shirts. Where do you get them from ?
Coming to t3 stack soon?
they already fixed their footer
I'm starting to migrate one of our FastAPIs across to nitro and drizzle ORM to push it onto the edge, I can concur with Theo - Andrew and the Drizzle team are kicking out the jams. I recommended in the Prisma slack that Prisma start letting us define out models in typescript ... a domain layer, if you will, we've bet big on Prisma in the rest of our infrastructure but Drizzle is certainly one to watch.
updating the db with manually created types seems tedious. supabase autogenerates a typed client for your api calls based on running a schema types gen command against the database (works the opposite way as a types generator using introspection sometimes called reflection eg reflect metadata)
Looks nice! I didn't like the prisma performance either (though I didn't care about it too much, no issues so far), but there's always this voice that says "this is slow be careful".
Glad to see the new syntax. I was hesitant to try it before because of the syntax. I'm a frontend dev, sure I can write some sql but I absolutely hate it, and select('*').from('users') really isn't far from just writing the sql directly. Will have to try it at some point for my next project. Not sure if the typescript table definitions can beat prisma's neatly formated schema, but I'm willing to give it a go. Especially if T3 stack comes with a 'pick your ORM' option. Dropping prisma doesn't seem like the best idea since so many people like it, but this would be really nice to have set up for auth and trpc and all that without the extra work required.
One year after this video, and they still have unresolved issues opened 1 year ago, basic things like adding a WHERE in an index or properly parse a remote SQL schema. They often ignore other devs submitting feedback or even pull requests asking to fix those important issues... so I am not really optimistic about the future of this project, hopefully another team with the same concept but better attitude will take on this soon.
I adapted this tool based on RUclipsrs praising it over Prisma, and I’m seeing issues on a fundamental level. Like it’s not able to insert booleans correctly, and it doesn’t set default values for fields even though specified that it should in its schema. Heck its introspection tool generates types with syntax errors at times.
Drizzle doesn’t have a 1.0 release yet, and any upgrade can include drastic changes that can break functionality.
While it’s true it has great performance, but what good is that if the result you’re getting is incorrect? You can mitigate performance but correctness…yikes!
I have to go back to rethink what ORM to use.
Any plans for something like drizzle studio?
A new day, a new -JS Framework- Database Tool
database tools are the new javascript frameworks, and thats great!
How about migrations? One thing I hate about prisma is that you need to be connected to a database to generate new migration files, haven't tried drizzle though
with drizzle there is no need to be connected
i started drizzle a while ago. What to do now?
What about Orchid ORM?
I literally didn’t click on this video knowing it would be about drizzle but I learned so much about just watching it 😂
Why would you use something like drizzle over mongoose + zod ? 😅
Are you moving T3 stack away from Prisma to Drizzle?
definitely need an example/in-depth tutorial.
Unfortunately, their drizzle kit does not fully support postgresql. For example, you cannot migrate your sql table to the database.
Theo will T3 stack change to Drizzle?
flashbang warning at 1:36 😂☀️
The one query thing is a big deal, but eloquent is still the best ORM I know so far.
1:19 "I don´t know what a LEFT JOIN is.." Instantly unsuscribed!!! =p
I love how fast Drizzle moves on feedback, much much better than Prisma to me for that alone
When will you add it to t3?
Mikro-orm is good as well 😂
Maybe unpopular opinion but...why are all relational dbs orders of magnitude slower than document stores like mongo?
Drizzle migrations are a nightmare compared to what Prisma offers.
what about surrealdb?
Drizzle reminds me a lot of Eloquent, which is good because it is one of the few things I liked about PHP XD
i live in the left,right,cross join world and i wish all problems is just a inner join
Instant like for 1:15 🤣
This actually looks better than Prisma lol, thanks Theo!
I didn't get a notification for this video, it was probably because youtube uses Firebase which comes with a multitude of problems. They're trying to silence you
disclaimer: idk if RUclips uses firebase
the syntax is very similar to supabase js sdk
don't use an ORM. Just use SQL. It allows you more control and fine tuning.
Start to drizzle given for you ❤
Most ORMs came after Knex (and quite a lote of them are built on it), they proposed a different API and the tides went full on TypeORM and Prisma... Now a new one rises, and guess what? It does the same Knex already was doing. Dang twisted ecosystem
*lists a bunch of massive problems that most other ORMs don't suffer from*
"That doesn't mean Prisma's bad." I think that's exactly what it means, Theo.
What's wrong with native sql?
You're probably not familiar with type safety in typescript, and the many additional benefits it provides
What about TypeORM?
Not sure it's still even maintained these days and, anyway, I prefer the column declaration in one line
the memes are real
so is drizzle
I'm stuck with typeorm. 😭
There is no good or evil. There is only weight and those too weak to lift it.
(C) Swoldemort
Paused the video. Starred Drizzle.
I just wanna use this library with Deno, then I got overwhelmed
Learning raw SQL and asking myself if I'm just dumb for finding joins somewhat unintuitive. I feel vindicated.
The key to understanding joins and sql is to realize that you have think set-based, not procedural based like most programming languages (even OO ones). The tendency of beginners is to rely on cursors because they are procedural in nature, but the true power behind sql queries is when you think in sets. In mathematics we learned sets by thinking about the regions between two intersecting circles.