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"