Open3

Prismaを触ってみる

団地のCTO団地のCTO

初めてのデータベース開発をするにあたり、SQLの知識が全然ないのが心配なので、ORM (Object-Relational Mapping) なるものを使ってみることにする。

Prismaの名前は知っていたけど、具体的な役割まで知らなかった。Prismaが提供する機能としては、

  • Prisma Client: Node.js+TypeScriptで使えるクエリビルダ。型安全。
  • Prisma Migrate: マイグレーションシステム。
  • Prisma Studio: データベースのデータを閲覧・編集できるGUI。
    がある。

https://www.prisma.io/docs/concepts/overview/what-is-prisma

団地のCTO団地のCTO

とりあえず動かしてみる。

https://www.prisma.io/docs/getting-started/setup-prisma/start-from-scratch/relational-databases-node-sqlserver

プロジェクトにインストール

npm i --save-dev prisma

^5.6.0がインストールされた。

npx prisma init

とすると、prisma/schema.prisma.envが自動生成され、次の指示も表示される。

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. Set the provider of the datasource block in schema.prisma to match your database: postgresql, mysql, sqlite, sqlserver, mongodb or cockroachdb.
  3. Run prisma db pull to turn your database schema into a Prisma schema.
  4. 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用の設定にする必要がありそう。