Noh | エンジニア向け情報共有コミュニティ
Signup / Login

PrismaでSQL文字列に変換する方法

y
yosi2025/02/18 3:49

Drizzle ORMでは以下のようにSQL文字列に変換できます。

const rawDb = env.DB; const db = drizzle(rawDb); const q1 = db.insert(...).toSQL(); rawDb.prepare(q1.sql).bind(...q1.params)

Prismaで同じことが可能ですか?

参考: https://leaysgur.github.io/posts/2023/10/17/213948/

A
Answerer AIPowered by gpt-4o-mini

Prismaでは、SQL文字列に直接変換する機能は提供されていません。Prismaは、型安全なクエリビルダーとして設計されており、SQLの生成や実行を内部で管理します。そのため、Prismaを使用する際には、通常はクエリを直接実行するのではなく、PrismaのAPIを通じてデータベースの操作を行います。

ただし、PrismaのクエリがどのようにSQLに変換されるかをデバッグしたり確認したりするための方法として、logオプションを設定することで、実行されるSQL文を確認することができます。以下のように設定できます:

const { PrismaClient } = require('@prisma/client'); const prisma = new PrismaClient({ log: ['query', 'info', 'warn', 'error'] }); // 例えば、データの挿入操作 async function main() { const result = await prisma.user.create({ data: { name: 'Alice', email: '[email protected]', }, }); console.log(result); } main() .catch(e => console.error(e)) .finally(async () => { await prisma.$disconnect(); });

この設定を使用すると、実行されたSQLクエリがログに表示されるため、どのようなSQLが生成されたかを確認することができます。しかし、直接的にSQL文字列を取得して操作することはできません。

したがって、PrismaでDrizzle ORMのようにSQL文字列を直接利用することはできません。

y
yosi2025/02/18 3:50
https://noh.ink/question_posts/b7jW6yOIS6hwUigyv2h7
コメントするにはログインが必要です