Posts

Showing posts with the label orm

Guide to Seeding Mock Data for PostgreSQL Using Prisma and Snaplet Seed

Image
Introduction @snaplet/seed is a highly powerful library that supports automatic mock data generation for databases based on the Prisma schema. Instead of manually writing hundreds of lines of complex insert code, @snaplet/seed automatically analyzes relations in the database to generate logical, consistent and data-integrity-assured data. Standout advantages include the ability to automatically reset the database, inherently understand foreign key constraints and support concise syntax for easily creating nested data structures. Prerequisites This article is used alongside Prisma in a NestJS project, I will not specifically mention how to set up Prisma anymore, you can review the previous article to have the necessary preparation before proceeding Detail First, install the package yarn add -D @snaplet/seed Then, add the following scripts to package.json { "scripts" : { "seed:init" : "npx @snaplet/seed init prisma/seed" , "seed:sync...

Using Prisma with PostgreSQL in NestJS

Image
Introduction Prisma is a next-generation ORM (Object-Relational Mapping) for NodeJS and TypeScript. It helps developers interact with databases intuitively and in a type-safe manner. Prisma possesses many outstanding advantages, including the ability to automatically generate optimal queries, automate the data migration process, provide powerful code auto-completion, and minimize runtime errors thanks to TypeScript's strict type-checking system. Compared to TypeORM, Prisma delivers a superior development experience thanks to a centralized, readable, and maintainable schema structure within a single file (schema.prisma). Instead of having to define complex Entity classes with multiple decorators like TypeORM, Prisma automatically generates Prisma Client based on the schema, ensuring absolute synchronization between the database and code. Additionally, Prisma's Rust-based query engine mechanism helps optimize data query performance with PostgreSQL more effectively, naturally avoi...

Using Drizzle ORM

Image
Introduction This is a next-generation TypeScript-first ORM (Object-Relational Mapping) library designed to interact with relational databases ( PostgreSQL, MySQL, SQLite ) in a lightweight, Type-safe and high-performance manner. Unlike traditional ORMs (such as Prisma, TypeORM, Hibernate ) that hide SQL behind complex abstraction layers, Drizzle follows the philosophy If you know SQL, you know Drizzle . It serves as both an ORM and a powerful Query Builder . Advantages Absolute TypeScript & Type-safe standard (100% Type-Safe): Schema is defined directly using TypeScript functions. When you write queries, Drizzle automatically infers the return type without needing cumbersome code generation steps. Extremely high performance & super lightweight ( Zero Overhead ): Drizzle has no heavy dependencies and does not use background engines (such as Rust binaries in Prisma ). Its ultra-small package size helps optimize cold start times, making it ideal for Serverless and Edge En...