ORマッパーのPrismaのインストールと初期設定のメモ

インストール

prismaと@prisma/clientをインストールします。

npm install prisma @prisma/client

初期化

Prismaでは初期化コマンドを実行して、スキーマ定義用のschema.prismaファイルと.envファイルを作成します。

初期化コマンドではデータベースの種類を指定する必要があり、コマンドは以下になります。 成功するとprismaディレクトリが作成され、そこにschema.prismaファイルが作成されます。

npx prisma init --datasource-provider [データベース名]

データベース名は、mysql、postgresqlやsqliteを指定します。詳細は以下を参照。

MySQLでは以下のようになります。

npx prisma init --datasource-provider mysql

実行すると以下のようになります。

npx prisma init --datasource-provider mysql

✔ Your Prisma schema was created at prisma/schema.prisma
  You can now open it in your favorite editor.

warn You already have a .gitignore file. Don't forget to add `.env` in it to not commit any private information.

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. Run prisma db pull to turn your database schema into a Prisma schema.
3. Run prisma generate to generate the Prisma Client. You can then start querying your database.
4. Tip: Explore how you can extend the ORM with scalable connection pooling, global caching, 
and real-time database events. Read: https://pris.ly/cli/beyond-orm

More information in our documentation:
https://pris.ly/d/getting-started

schema.prisma

initコマンドで作成される schema.prismaファイルは以下のようになります。

// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema

// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions?
// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init

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

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

.env

.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#accessing-environment-variables-from-the-schema

# Prisma supports the native connection string format for PostgreSQL, MySQL, SQLite, SQL Server, MongoDB and CockroachDB.
# See the documentation for all the connection string options: https://pris.ly/d/connection-strings

DATABASE_URL="mysql://johndoe:randompassword@localhost:3306/mydb"