0
0
Lập trình
Sơn Tùng Lê
Sơn Tùng Lê103931498422911686980

Hướng dẫn chi tiết kết nối Prisma với PostgreSQL trong việc xây dựng ứng dụng quản lý thư viện

Đăng vào 4 tuần trước

• 3 phút đọc

Chủ đề:

prismaPostgres

Hướng dẫn chi tiết kết nối Prisma với PostgreSQL trong việc xây dựng ứng dụng quản lý thư viện

Trong bài viết này, chúng ta sẽ tìm hiểu cách thiết lập Prisma với PostgreSQL một cách dễ dàng và hiệu quả. Hướng dẫn này sẽ giúp bạn xây dựng một ứng dụng quản lý thư viện hoàn chỉnh.

Giới thiệu

Trước khi bắt đầu, bạn cần có một số công cụ cơ bản. Hãy đảm bảo rằng bạn đã cài đặt Node.js (từ phiên bản 14 trở lên), npm hoặc yarn, và tạo tài khoản trên Supabase để sử dụng cơ sở dữ liệu PostgreSQL miễn phí.

Nếu bạn chưa biết về PostgreSQL, bạn có thể tham khảo bài viết của chúng tôi về PostgreSQL là gì?.

Thiết lập Prisma kết nối với PostgreSQL

Supabase cung cấp cơ sở dữ liệu PostgreSQL được lưu trữ, giúp bạn tiết kiệm thời gian và chi phí, đồng thời có thể mở rộng theo nhu cầu của dự án.

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

  • Đăng nhập vào tài khoản Supabase của bạn.
  • Nhấn vào "New project".
  • Điền thông tin cho dự án và nhấp vào "Create new project" để hoàn tất.

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

  • Trên thanh điều hướng, tìm tới "Project Settings" > "Database".
  • Sao chép chuỗi kết nối (URI) cho PostgreSQL để sử dụng ở bước tiếp theo:
Copy
postgres://postgres.[ref]:[password]@[region].pooler.supabase.com:6543/postgres

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

Prisma là một ORM (Object-Relational Mapping) giúp đơn giản hóa việc tương tác với cơ sở dữ liệu trong các ứng dụng Node.js.

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

Mở terminal và thực hiện các lệnh sau:

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

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

Thực hiện các lệnh sau để cài đặt:

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

3. Khởi tạo Prisma

Chạy lệnh sau để tạo ra cấu trúc thư mục cần thiết:

Copy
npx prisma init

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

Cấu hình Prisma kết nối với PostgreSQL

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

  • Mở file .env trong thư mục prisma.
  • Thêm DATABASE_URLDIRECT_URL đã sao chép từ Supabase:
Copy
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 qua cổng 5432 là cần thiết để thực hiện các di chuyển cơ sở dữ liệu.

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

  • Mở file prisma/schema.prisma và cập nhật khối datasource:
Copy
datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
  directUrl = env("DIRECT_URL")
}
  • Thêm mô hình dữ liệu cho hệ thống quản lý thư viện:
Copy
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 đồ PostgreSQL

Sử dụng Prisma Migrate để áp dụng lược đồ vào cơ sở dữ liệu PostgreSQL trên Supabase:

Copy
npx prisma migrate dev --name init

Lệnh này sẽ tạo tệp di chuyển và áp dụng lược đồ vào cơ sở dữ liệu.

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

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

Copy
const { PrismaClient } = require('@prisma/client');
const prisma = new PrismaClient();

async function main() {
  // Tạo một tác giả mới
  const author = await prisma.author.create({
    data: {
      name: 'Yevgeny Zamyatin',
    },
  });

  // Tạo một cuốn sách mới
  const book = await prisma.book.create({
    data: {
      title: 'We',
      authorId: author.id,
    },
  });

  // Lấy tất cả các cuốn sách cùng với tác giả
  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 tin vừa tạo:

Copy
node script.js

Bạn sẽ thấy kết quả là danh sách các cuốn sách cùng với thông tin tác giả được in ra bảng điều khiển.

Kết luận

Không quá khó khăn để thiết lập Prisma kết nối với PostgreSQL cho ứng dụng quản lý thư viện của bạn. Bây giờ bạn có thể dễ dàng tương tác với cơ sở dữ liệu PostgreSQL thông qua Prisma. Cảm ơn bạn đã theo dõi cùng chúng tôi!
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào