0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

TypeExpressTutorial - 2

Last updated at Posted at 2024-07-04

やりたいこと

  • Dockerを使ってローカル環境でMysqlのDBを起動させる
  • Prismaを使ってUsersテーブルを作成する
  • データベースの管理アプリであるSecuelAceを使ってアクセスできる
全体像
  1. プロジェクト作成
  2. DB構築 - Mysql + prisma
  3. 環境変数設定
  4. API設定 - 簡略版
  5. ユーザー登録とログイン
  6. カスタムエラーハンドリング
  7. バリデーション - zod
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12

docker-compose で Mysqlを起動

ルートディレクトリにファイル作成

docker-compose.yml
version: '3.9'

services:
  db:
    image: mysql:8.0
    platform: linux/amd64 # M1 Macの場合はplatformをlinux/amd64に指定する
    container_name: type-express-db
    ports:
      - 3306:3306
    volumes:
      - mysql:/var/lib/mysql # ボリューム領域を指定 ※ボリュームの指定 -> {ボリューム名}:{コンテナ内の絶対パス}
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: type-express-db

volumes:
  mysql:
$ docker compose up -d db

prismaの導入

$ npm install prisma @prisma/client

$ npx prisma init --datasource-provider mysql
.env
DATABASE_URL="mysql://root:password@localhost:3306/type-express-db" // <- 追記

UsersテーブルのSchemaの設定

prisma/schema.prisma のファイルに Userテーブル の Schema を追記

prisma/schema.prisma
generator client {
  provider = "prisma-client-js"
}

datasource db {
  provider = "mysql"
  url      = env("DATABASE_URL")
}

model User {
  id        Int      @id @default(autoincrement())
  email     String   @unique
  name      String
  password  String

  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt

  @@map("users")
}

マイグレーション

$ npx prisma migrate dev --name CreateUsersTable

SecuelAceを使って接続を確認

スクリーンショット 2024-07-06 16.44.44.png

  • TCP/IP を選択
  • Name : 何でもOKです。適用な文字列を入力してください
  • Host : 127.0.0.1
  • Username : docker-compose.yml内で特にしてしていない場合は、 root と記述します
  • Password : docker-compose.yml内で指定したパスワード(今回の場合だったら password と記述します)
  • Database : docker-compose.yml内で指定したデータベース名(今回の場合だったら type-express-db と記述します)
  • Port : 特に記述なしでOKです
  • Connect ボタンをクリック
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?