> 웹 프론트엔드 > JS 튜토리얼 > Drizzle ORM 크래시 코스

Drizzle ORM 크래시 코스

Barbara Streisand
풀어 주다: 2025-01-14 20:28:47
원래의
505명이 탐색했습니다.

Drizzle ORM Crash Course

소개

Drizzle ORM은 TypeScript용 간단하고 가벼운 ORM입니다. 사용하기 쉽고 이해하기 쉽도록 설계되었습니다. MySQL 데이터베이스와 함께 사용하도록 설계되었지만 다른 데이터베이스에서도 작동하도록 쉽게 확장할 수 있습니다.

시작하기

Drizzle ORM은 PostgreSQL, MySQL, SQLite를 지원합니다. 이 가이드는 MySQL에 중점을 두지만 개념은 모든 데이터베이스에서 동일합니다.
Drizzle ORM에서 자세한 내용을 확인할 수 있습니다

설치

Drizzle ORM을 설치하려면 npm에서 패키지를 설치해야 합니다.

npm i drizzle-orm pg dotenv
npm i -D drizzle-kit tsx @types/pg
로그인 후 복사
로그인 후 복사

npm i drizzle-orm pg dotenv - 이 명령은 Drizzle ORM 패키지, pg 패키지 및 dotenv 패키지를 설치합니다. pg 패키지는 PostgreSQL 지원에 필요하지만 MySQL 또는 SQLite에는 필요하지 않습니다.

npm i -D drizzle-kit tsx @types/pg - 이 명령은 Drizzle Kit 패키지, tsx 패키지 및 @types/pg 패키지를 설치합니다. Drizzle ORM이 TypeScript와 작동하려면 Drizzle Kit 패키지가 필요합니다.

구성

Drizzle ORM을 구성하려면 프로젝트 루트에 .env 파일을 생성해야 합니다. 이 파일에는 다음 정보가 포함되어야 합니다.

DATABASE_URL=your-database-url
로그인 후 복사
로그인 후 복사

your-database-url을 데이터베이스의 URL로 바꾸세요. 예를 들어, MySQL을 사용하는 경우 URL은 다음과 같아야 합니다.

DATABASE_URL=mysql://username:password@localhost:3306/database
로그인 후 복사
로그인 후 복사

drizzle.config.ts 파일에서 drizzle 구성을 설정하세요.

import 'dotenv/config';
import { defineConfig } from 'drizzle-kit';

export default defineConfig({
  out: './drizzle',
  schema: './src/db/schema.ts',
  dialect: 'postgresql',
  dbCredentials: {
    url: process.env.DATABASE_URL!,
  },
});
로그인 후 복사

 테이블 만들기

데이터베이스에 테이블을 생성하려면 Schema.ts라는 파일에 스키마를 정의해야 합니다. 이 파일에는 다음 정보가 포함되어야 합니다.

import { pgTable, unique, integer, varchar } from 'drizzle-orm/pg-core';
import { sql } from 'drizzle-orm';

export const users = pgTable(
  'users',
  {
    id: integer().primaryKey().generatedAlwaysAsIdentity({
      name: 'users_id_seq',
      startWith: 1,
      increment: 1,
      minValue: 1,
      maxValue: 2147483647,
      cache: 1,
    }),
    name: varchar({ length: 255 }).notNull(),
    age: integer().notNull(),
    email: varchar({ length: 255 }).notNull(),
  },
  (table) => {
    return {
      usersEmailUnique: unique('users_email_unique').on(table.email),
    };
  }
);
로그인 후 복사

id, name, age, email의 4개 열로 users라는 테이블을 정의합니다. id 열은 자동 증가하는 기본 키이며, 이름, 나이, 이메일 열은 필수입니다.

 데이터베이스에 연결

src/db 디렉터리에 index.ts 파일을 생성하고 데이터베이스 연결을 초기화합니다.

import 'dotenv/config';
import { drizzle } from 'drizzle-orm/node-postgres';

const db = drizzle(process.env.DATABASE_URL!);
로그인 후 복사

우리는 이미 .env 파일에 DATABASE_URL을 정의했습니다. 데이터베이스에 연결하기 위해 Drizzle 기능을 사용하고 있습니다.

 데이터 삽입

users 테이블에 데이터를 삽입하려면 db 객체에 insert 메소드를 사용하면 됩니다.

import { users } from './schema';

const user = await db.insert(users).values({
  name: 'John Doe',
  age: 30,
  email: '
});
로그인 후 복사

users 테이블에 새로운 사용자를 삽입하기 위해 db 객체에 insert 메소드를 사용하고 있습니다. 이름, 나이, 이메일 속성이 포함된 객체를 값 메소드에 전달합니다.

 데이터 쿼리

사용자 테이블에서 데이터를 쿼리하려면 db 개체에서 select 메서드를 사용할 수 있습니다.

npm i drizzle-orm pg dotenv
npm i -D drizzle-kit tsx @types/pg
로그인 후 복사
로그인 후 복사

users 테이블에서 사용자를 쿼리하기 위해 db 객체의 select 메소드를 사용하고 있습니다. 우리는 id 열을 기준으로 결과를 필터링하기 위해 where 메소드를 사용하고 있습니다.

 데이터 업데이트

users 테이블의 데이터를 업데이트하려면 db 객체의 update 메소드를 사용하면 됩니다.

DATABASE_URL=your-database-url
로그인 후 복사
로그인 후 복사

users 테이블의 사용자를 업데이트하기 위해 db 객체의 업데이트 메소드를 사용하고 있습니다. age 열을 31로 설정하기 위해 set 메소드를 사용하고, id 열을 기준으로 결과를 필터링하기 위해 where 메소드를 사용하고 있습니다.

 데이터 삭제

사용자 테이블에서 데이터를 삭제하려면 db 개체에서 삭제 메소드를 사용할 수 있습니다.

DATABASE_URL=mysql://username:password@localhost:3306/database
로그인 후 복사
로그인 후 복사

users 테이블에서 사용자를 삭제하기 위해 db 객체에 delete 메소드를 사용하고 있습니다. 우리는 id 열을 기준으로 결과를 필터링하기 위해 where 메소드를 사용하고 있습니다.

결론

Drizzle ORM은 간단하고 가벼운 TypeScript용 ORM입니다. 사용하기 쉽고 이해하기 쉽도록 설계되었습니다. 이는 MySQL 데이터베이스와 함께 사용하도록 설계되었지만 다른 데이터베이스에서도 작동하도록 쉽게 확장할 수 있습니다. Drizzle ORM에서 자세한 내용을 확인할 수 있습니다

감사합니다

이 가이드를 읽어주셔서 감사합니다. 도움이 되었기를 바랍니다. 질문이나 의견이 있으시면 언제든지 저에게 연락해 주세요. 여러분의 의견을 듣고 싶습니다.

위 내용은 Drizzle ORM 크래시 코스의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿