Prisma의 기본 조작 (MySQL 마이그레이션 편)

본 기사의 내용



TypeScript와 Go 언어를 지원하는 Prisma에 대해 설명합니다.
본 기사는 마이그레이션편입니다. CRUD 처리는 CRUD 처리편을 읽으십시오.

아젠다


  • Prisma란
  • Prisma 설치
  • Prisma의 Migration

  • 1. Prisma란?



    Prisma란?

    Prisma는 PostgreSQL, MySQL, SQLite 용 ORM. TypeScript, Go 언어 지원.
    주요 서비스는 세 가지이지만이 기사에서는 Prisma Migration에 대한 설명을 제공합니다.

    ○ 주요 서비스
    ① Prisma Client: DB 클라이언트.

    ② Prisma Migration: TBL 작성 시의 마이그레이션 툴

    ③ Prisma Studio : TBL 상태를 확인하는 도구

    2. Prisma 설치



    Prisma 설치

    Prisma는 npm 지원을 받으므로 npm 또는 yarn 명령으로 설치할 수 있습니다.
    아래 명령으로 설치합시다.
    ~/develop/study/prisma $ yarn init
    yarn init v1.22.5
    warning ../../../package.json: No license field
    question name (prisma): 
    question version (1.0.0): 
    question description: 
    question entry point (index.js): 
    question repository url: 
    question author: 
    question license (MIT): 
    question private: 
    success Saved package.json
    ✨  Done in 6.47s.
    
    ~/develop/study/prisma $ yarn add prisma 
    yarn add v1.22.5
    warning ../../../package.json: No license field
    info No lockfile found.
    [1/4] 🔍  Resolving packages...
    [2/4] 🚚  Fetching packages...
    [3/4] 🔗  Linking dependencies...
    [4/4] 🔨  Building fresh packages...
    success Saved lockfile.
    success Saved 2 new dependencies.
    info Direct dependencies
    └─ [email protected]
    info All dependencies
    ├─ @prisma/[email protected]
    └─ [email protected]
    ✨  Done in 4.42s.
    

    인스톨 후에는 prisma의 필요 모듈을 인스톨 하기 위해, 하기 커멘드를 실행한다.
    ~/develop/study/prisma $ yarn prisma init
    yarn run v1.22.5
    warning ../../../package.json: No license field
    $ /Users/kawamurakouji/develop/study/prisma/node_modules/.bin/prisma init
    
    ✔ Your Prisma schema was created at prisma/schema.prisma
      You can now open it in your favorite editor.
    
    Next steps:
    1. Set the DATABASE_URL in the .env file to point to your existing database. If your database has no tables yet, read https://pris.ly/d/getting-started
    2. Set the provider of the datasource block in schema.prisma to match your database: postgresql, mysql, sqlserver or sqlite.
    3. Run yarn prisma db pull to turn your database schema into a Prisma data model.
    4. Run yarn prisma generate to install Prisma Client. You can then start querying your database.
    
    More information in our documentation:
    https://pris.ly/d/getting-started
    
    ✨  Done in 1.65s.
    

    prisma 디렉토리가 작성되고 schema.prisma가 작성되면 준비 OK입니다.
    ~/develop/study/prisma $ tree -I node_modules 
    .
    ├── package.json
    ├── prisma
    │   └── schema.prisma
    └── yarn.lock
    


    3. Prisma 마이그레이션



    3-1. schema.prisma 수정

    TBL 작성 및 DB에 대한 액세스 정보는 schema.prisma에서 관리됩니다. 그러므로 schema.prisma를 수정해 봅시다.

    prisma 디렉토리의 schema.prisma를여십시오. 기본적으로 다음과 같은 파일입니다.


    그것을 다음과 같이 변경하십시오. 이제 UserTBL을 만들 수 있습니다.
    datasource db {
      provider = "mysql"
      url      = env("DATABASE_URL")
    }
    
    generator client {
      provider = "prisma-client-js"
    }
    
    model User {
      id    Int     @id @default(autoincrement())
      email String  @unique
      name  String?
    }
    


    3-2. .env 설정

    schema.prisma는 DB 계정과 PW를 url로 저장합니다. url은 환경 변수로 등록해야하므로 등록을 위해 .env를 편집하십시오. .env는 이미 만들어졌으며 배치 위치는 다음과 같습니다.
    ~/develop/study/prisma $ ls -la
    total 24
    drwxr-xr-x  7 kawamurakouji  staff   224  7  5 16:36 .
    drwxr-xr-x  7 kawamurakouji  staff   224  7  5 16:15 ..
    -rw-r--r--  1 kawamurakouji  staff   477  7  5 16:36 .env
    drwxr-xr-x  7 kawamurakouji  staff   224  7  5 16:34 node_modules
    -rw-r--r--  1 kawamurakouji  staff   169  7  5 16:34 package.json
    drwxr-xr-x  3 kawamurakouji  staff    96  7  5 16:36 prisma
    -rw-r--r--  1 kawamurakouji  staff  1637  7  5 16:34 yarn.lock
    

    기본적으로 다음과 같이 되어 있습니다.


    .env를 아래와 같이 변경하십시오. ({사용자 이름}, {비밀번호}, {스키마 이름}은 환경에 따라 변경하십시오.)
    ~/develop/study/prisma $ cat .env
    # Environment variables declared in this file are automatically made available to Prisma.
    # See the documentation for more detail: https://pris.ly/d/prisma-schema#using-environment-variables
    
    # Prisma supports the native connection string format for PostgreSQL, MySQL and SQLite.
    # See the documentation for all the connection string options: https://pris.ly/d/connection-strings
    
    DATABASE_URL="mysql://{ユーザ名}:{パスワード}@localhost:3306/{スキーマ名}"
    


    3-3. TBL 작성

    그럼 TBL을 만들어 갑시다. 미리 MySQL을 설치하고 스키마까지 작성하십시오.
    아래 명령으로 TBL을 작성합시다.


    작성되었으므로 TBL이 만들어진 것을 확인합니다.

    좋은 웹페이지 즐겨찾기