T3 Stack に Neon DB を使用して環境構築してみた

4/27/2023

6/19/2023

T3 Stack と Neon DB で環境構築


◎ T3 Stack とは?

  • Next.js
  • NextAuth
  • TypeScript
  • tRPC
  • Prisma
  • TailwindCSS

上記で構成された型安全なフルスタックアプリケーションです。

◎ Neon とは?

フルマネージドかつサーバーレスなPostgreSQLです。

無料で使用できるため、今回試しに採用してみました。
無料枠の条件は、

  • 1プロジェクト
  • 10ブランチ(1ブランチごとに3GBのデータ容量)
  • 3エンドポイント(1エンドポイントごとに1 vCPUと最大4GBのRAM)


◎ T3 Stack でプロジェクトを作成する

$ npm create t3-app@latest


◎ Prisma 設定

/プロジェクト名/prisma/schema.prisma

generator client {
    provider = "prisma-client-js"
}

datasource db {
    provider                         = "postgresql" // 変更
    // NOTE: When using postgresql, mysql or sqlserver, uncomment the @db.Text annotations in model Account below
    // Further reading:
    // https://next-auth.js.org/adapters/prisma#create-the-prisma-schema
    // https://www.prisma.io/docs/reference/api-reference/prisma-schema-reference#string
    url                                  = env("DATABASE_URL")
    shadowDatabaseUrl    = env("SHADOW_DATABASE_URL") // 追記
    directUrl                      = env("DIRECT_URL") // 追記
}


/プロジェクト名/.env

DATABASE_URL="postgres://role_name:password@host_name:5432/db_name?pgbouncer=true"
SHADOW_DATABASE_URL="postgres://role_name:password@host_name:5432/db_name"
DIRECT_URL="postgres://role_name:password@host_name:5432/db_name"