Open3
Prismaを触ってみる
初めてのデータベース開発をするにあたり、SQLの知識が全然ないのが心配なので、ORM (Object-Relational Mapping) なるものを使ってみることにする。
Prismaの名前は知っていたけど、具体的な役割まで知らなかった。Prismaが提供する機能としては、
- Prisma Client: Node.js+TypeScriptで使えるクエリビルダ。型安全。
- Prisma Migrate: マイグレーションシステム。
- Prisma Studio: データベースのデータを閲覧・編集できるGUI。
がある。
とりあえず動かしてみる。
プロジェクトにインストール
npm i --save-dev prisma
^5.6.0
がインストールされた。
npx prisma init
とすると、prisma/schema.prisma
と.env
が自動生成され、次の指示も表示される。
Next steps:
- 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
- Set the provider of the datasource block in schema.prisma to match your database: postgresql, mysql, sqlite, sqlserver, mongodb or cockroachdb.
- Run prisma db pull to turn your database schema into a Prisma schema.
- Run prisma generate to generate the Prisma Client. You can then start querying your database.
デフォルトだと、PostgreSQL用の設定になっている。
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
DATABASE_URL="postgresql://johndoe:randompassword@localhost:5432/mydb?schema=public"
今回はAzure SQL Databaseを使うので、SQL Server用の設定にする必要がありそう。
Microsoft SQL Server用の接続設定
-
schema.prisma
:datasource db { provider = "sqlserver" url = env("DATABASE_URL") }
-
.env
:ただし、パスワードなどに特殊文字を含む場合はエスケープが必要。sqlserver://HOST:PORT;database=DATABASE;user=USER;password={PASSWORD};encrypt=true
{}
で囲んでおく。