Hướng dẫn kết nối Prisma với Postgres: Xây dựng ứng dụng quản lý thư viện

0 0 0

Người đăng: Thái Thịnh

Theo Viblo Asia

Trong hướng dẫn này, chúng ta sẽ khám phá cách thiết lập Prisma với Postgres sao cho đơn giản và dễ thực hiện nhất.

Trước khi bắt đầu, bạn cần cài đặt Node.js (v14 trở lên), npm hoặc yarn và tạo tài khoản trên Supabase.

Thiết lập Prisma + Postgres

Supabase cung cấp cơ sở dữ liệu Postgres được lưu trữ, giúp bạn dễ dàng bắt đầu mà không cần thiết lập máy chủ cơ sở dữ liệu riêng. Đây là một giải pháp tiết kiệm chi phí và có khả năng mở rộng cho hàng triệu người dùng nếu dự án của bạn phát triển mạnh.

1. Tạo một dự án Supabase mới

  • Đầu tiên, bạn hãy đăng nhập vào tài khoản Supabase của bạn .
  • Nhấp vào "New project" .
  • Điền thông tin chi tiết của dự án và nhấp vào "Create new project" .

2. Lấy thông tin chi tiết kết nối cơ sở dữ liệu

  • Trên thanh điều hướng, hãy vào "Project Settings" > "Database" .
  • Sau đó hãy sao chép chuỗi kết nối (URI) cho Postgres. Bạn sẽ cần nó ở bước tiếp theo:
postgres://postgres.[ref]:[password]@[region].pooler.supabase.com:6543/postgres

Thiết lập Prisma trong dự án của bạn

Prisma là một ORM giúp đơn giản hóa tương tác cơ sở dữ liệu trong các ứng dụng Node.js.

1. Khởi tạo một dự án Node.js

mkdir prisma-postgres
cd prisma-postgres
npm init -y

2. Cài đặt Prisma và Postgres Client

npm install prisma --save-dev
npm install @prisma/client

3. Khởi tạo Prisma

npx prisma init

Lệnh này sẽ tạo thư mục prisma chứa file schema.prisma và .env.

Cấu hình Prisma + Postgres

1. Thiết lập kết nối cơ sở dữ liệu

  • Đầu tiên, hãy mở file .env trong thư mục prisma
  • Sau đó, thêm DATABASE_URL và DIRECT_URL đã sao chép từ Supabase.
DATABASE_URL="postgres://postgres.[ref]:[password]@aws-0-[region].pooler.supabase.com:6543/postgres?pgbouncer=true" DIRECT_URL="postgres://postgres.[ref]:[password]@aws-0-[region].pooler.supabase.com:5432/postgres" 

Kết nối trực tiếp (trên cổng 5432 là cần thiết để chạy di chuyển cơ sở dữ liệu trên cơ sở dữ liệu đó).

2. Xác định mô hình dữ liệu

  • Mở prisma/schema.prisma.
  • Tiếp theo, cập nhật khối datasource để bao gồm DIRECT_URL.
datasource db { provider = "postgresql" url = env("DATABASE_URL") directUrl = env("DIRECT_URL")
} 

Thêm mô hình dữ liệu của bạn. Đối với hệ thống thư viện:

model Author { id Int @id @default(autoincrement()) name String books Book[]
} model Book { id Int @id @default(autoincrement()) title String author Author @relation(fields: [authorId], references: [id]) authorId Int
} 

Tạo lược đồ Postgres

Sử dụng Prisma Migrate để áp dụng lược đồ của bạn vào cơ sở dữ liệu Postgres trên Supabase.

npx prisma migrate dev --name init

Lệnh này sẽ:

  • Tạo tập tin di chuyển.
  • Áp dụng di chuyển vào cơ sở dữ liệu Postgres.
  • Tạo Prisma Client.

Sử dụng Prisma Client để tương tác với Prisma + Postgres

Tạo một tệp script.js để kiểm tra hoạt động của cơ sở dữ liệu.

const { PrismaClient } = require('@prisma/client');
const prisma = new PrismaClient(); async function main() { // Create a new author const author = await prisma.author.create({ data: { name: 'Yevgeny Zamyatin', }, }); // Create a new book const book = await prisma.book.create({ data: { title: 'We', authorId: author.id, }, }); // Retrieve all books with their authors const books = await prisma.book.findMany({ include: { author: true }, }); console.log(books);
} main() .catch((e) => console.error(e)) .finally(async () => { await prisma.$disconnect(); }); 

Chạy tập lệnh

node script.js

Bạn sẽ thấy một loạt sách cùng với tác giả liên quan được ghi vào bảng điều khiển.

Kết luận

Vậy là bạn đã thiết lập thành công Prisma với Postgres. Thiết lập này cho phép bạn tương tác liền mạch với cơ sở dữ liệu Postgres của mình bằng Prisma. Cảm ơn các bạn đã theo dõi.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Nestjs + Swagger

I. Mở đầu. . Trong các bài viết về nestjs mình toàn chỉ dùng Graphql nên hôm nay đổi gió một chút, giới thiệu các bạn về restAPI sử dung swaggerUI trong nestjs.

0 0 46

- vừa được xem lúc

014: PostgreSQL transaction isolation

Bài viết nằm trong series Performance optimization với PostgreSQL. Bài viết này sẽ tập trung vào tính isolation - transaction isolation.

0 0 59

- vừa được xem lúc

015: PostgreSQL best practice

Bài viết nằm trong series Performance optimization với PostgreSQL. Let's begin.

0 0 42

- vừa được xem lúc

Cài đặt hệ quản trị cơ sở dữ liệu PostgresSQL

Trong bài viết này mình sẽ hướng dẫn anh em cách cài đặt PostgresSQL trên Windows, MacOS và Docker nhé. 1.

0 0 27

- vừa được xem lúc

Hệ quản trị cơ sở dữ liệu Postgresql là gì ?

POSTGRESQL LÀ GÌ . Tại sao nên dùng PostgreSQL cho dự án của bạn. . Ngoài việc miễn phí và mã nguồn mở, PostgreSQL có khả năng mở rộng cao.

0 0 26

- vừa được xem lúc

Kiểu dữ liệu trong postgresSQL (Data Types)

Sau khi đã hiểu postgresSQL là gì và cài đặt nó, thì ở bài viết này mình sẽ giới thiệu đến anh em các kiểu dữ liệu(Data types) trong postgresSQL nhé. Kiểu dữ liệu kiểu số trong postgresSQL có những ki

0 0 29