Security News
Oracle Drags Its Feet in the JavaScript Trademark Dispute
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
@shiyuhang0/prisma-adapter
Advanced tools
Prisma driver adapter for TiDB Cloud Serverless Driver. For more details, see TiDB Cloud Serverless Driver Prisma Tutorial .
Before you start, make sure you have:
You will need to install the @tidbcloud/prisma-adapter
driver adapter and the @tidbcloud/serverless
serverless driver.
npm install @tidbcloud/prisma-adapter @tidbcloud/serverless
Set the environment to your .env file in the local environment. You can get connection information on the TiDB Cloud console.
// .env
DATABASE_URL="mysql://username:password@host:4000/database?sslaccept=strict"
NOTE
The adapter only supports Prisma Client. Prisma migration and introspection still go through the traditional TCP way. If you only need Prisma Client, you can set the DATABASE_URL as the
mysql://username:password@host/database
format which port and ssl parameters are not needed).
First, you need to create a Prisma schema file called schema.prisma and define the model. Here we use the user as an example.
// schema.prisma
generator client {
provider = "prisma-client-js"
previewFeatures = ["driverAdapters"]
}
datasource db {
provider = "mysql"
url = env("DATABASE_URL")
}
// define model according to your database table
model user {
id Int @id @default(autoincrement())
email String? @unique(map: "uniq_email") @db.VarChar(255)
name String? @db.VarChar(255)
}
Here is an example of query:
// query.js
import { connect } from '@tidbcloud/serverless';
import { PrismaTiDBCloud } from '@tidbcloud/prisma-adapter';
import { PrismaClient } from '@prisma/client';
import dotenv from 'dotenv';
// setup
dotenv.config();
const connectionString = `${process.env.DATABASE_URL}`;
// init prisma client
const connection = connect({ url: connectionString });
const adapter = new PrismaTiDBCloud(connection);
const prisma = new PrismaClient({ adapter });
// insert
const user = await prisma.user.create({
data: {
email: 'test@prisma.io',
name: 'test',
},
})
console.log(user)
// query after insert
console.log(await prisma.user.findMany())
Here is an example of transaction:
// query.js
import { connect } from '@tidbcloud/serverless';
import { PrismaTiDBCloud } from '@tidbcloud/prisma-adapter';
import { PrismaClient } from '@prisma/client';
import dotenv from 'dotenv';
// setup
dotenv.config();
const connectionString = `${process.env.DATABASE_URL}`;
// init prisma client
const connection = connect({ url: connectionString });
const adapter = new PrismaTiDBCloud(connection);
const prisma = new PrismaClient({ adapter });
const createUser1 = prisma.user.create({
data: {
email: 'yuhang.shi@pingcap.com',
name: 'Shi Yuhang',
},
})
const createUser2 = prisma.user.create({
data: {
email: 'yuhang.shi@pingcap.com',
name: 'Shi Yuhang2',
},
})
const createUser3 = prisma.user.create({
data: {
email: 'yuhang2.shi@pingcap.com',
name: 'Shi Yuhang2',
},
})
try {
await prisma.$transaction([createUser1, createUser2]) // Operations fail together
} catch (e) {
console.log(e)
await prisma.$transaction([createUser1, createUser3]) // Operations succeed together
}
Adapter | Prisma/Prisma Client | serverless driver |
---|---|---|
v5.4.x | v5.4.x | [v0.0.6, v0.1.0) |
v5.5.x | v5.5.x | [v0.0.7, v0.1.0) |
v5.6.x | v5.6.x | [v0.0.7, v0.1.0) |
v5.7.x | v5.7.x | [v0.0.7, v0.1.0) |
v5.8.x | v5.8.x | [v0.0.9, v0.1.0) |
v5.9.x | v5.9.x | [v0.0.9, v0.1.0) |
v5.10.x | v5.10.x | >= v0.1.0 |
v5.11.x | v5.11.x | >= v0.1.0 |
v5.12.x | v5.12.x | >= v0.1.0 |
v5.13.x | v5.13.x | >= v0.1.0 |
v5.14.x | v5.14.x | >= v0.1.0 |
v5.15.x | v5.15.x | >= v0.1.0 |
v5.20.x | v5.20.x | >= v0.1.0 |
Here is the step to step guide for how to choose the version:
FAQs
Prisma's driver adapter for "@tidbcloud/serverless"
The npm package @shiyuhang0/prisma-adapter receives a total of 21 weekly downloads. As such, @shiyuhang0/prisma-adapter popularity was classified as not popular.
We found that @shiyuhang0/prisma-adapter demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.