Say goodbye to boilerplate code and hello to efficient and elegant syntax.
npm install rads-db1. Clone project
2. pnpm dev
3. Add tests
4. Fix tests
When you work with the databases
ORM is acronym for “Object Relational Mapping”. It is a library that helps developers to work with the database without
leaving comfort of their programming language.
In other words, if your database is e.g. SQL, instead of writing raw sql queries and parsing results, you can functions
provided by ORM library for your programming language (e.g. Typescript).
``jsx`
// Without ORM:
const data = db.query("select * from users where login like '%admin%'")
// With ORM:
const data = orm.users.get({ where: { login_contains: 'admin' } })
Popular ORMs:
- Entity Framework (C#/.net)
- ServiceStack.OrmLite (C#/.net)
- Hibernate (Java)
- Prisma (TS)
- Drizzle (TS)
- TypeORM (TS)
- MikroORM (TS)
- Sequelize (TS)
Here is a good article from Prisma
providing detailed overview of how ORMs work.
ORM hides database complexity from the developer, but that has a price.
- “Simple” ORMs (e.g. Prisma) quickly encounter limitations - e.g. sql queries that cannot be represented by ORM.
- “Complex” ORMs that try to support full set of features (e.g. Entity Framework) add their own complexity and introduce
mental load on top of managing SQL
Consensus among the developer community is to use “simple” ORM, and use raw queries when ORM capabilities is not enough.
We wanted to have features that are not supported in current ORMs:
- This article gives good overview
When you want to test changes in this package, it may be useful to test with pnpm link.
But due to specifics of how this package uses peer dependencies, it won't work well.
Use file protocol instead:
```
// package.json
{
"dependencies": {
"rads-db": "file:../rads-db"
}
}