DrizzleORM v0.29.4 发布
Feb 22, 2024
新功能
🎉 Neon HTTP 批处理
更多信息,你可以查看 Neon 文档 和 Neon 和 Drizzle 入门。
import { neon } from '@neondatabase/serverless';
import { drizzle } from 'drizzle-orm/neon-http';
import { usersTable } from './schema';
const sql = neon(process.env.DRIZZLE_DATABASE_URL!);
const db = drizzle(sql);
const batchResponse: BatchType = await db.batch([
db.insert(usersTable).values({ id: 1, name: 'John' }).returning({
id: usersTable.id,
}),
db.insert(usersTable).values({ id: 2, name: 'Dan' }),
db.query.usersTable.findMany({}),
db.query.usersTable.findFirst({}),
]);
type BatchType = [
{
id: number;
}[],
NeonHttpQueryResult<never>,
{
id: number;
name: string;
verified: number;
invitedBy: number | null;
}[],
{
id: number;
name: string;
verified: number;
invitedBy: number | null;
} | undefined,
];
改进
感谢 database-js
和 PlanetScale
团队,我们更新了 database-js
的默认行为和实例。
根据 database-js
核心团队的建议,你应该使用 Client
实例而不是 connect()
:
import { Client } from '@planetscale/database';
import { drizzle } from 'drizzle-orm/planetscale-serverless';
// create the connection
const client = new Client({
host: process.env['DATABASE_HOST'],
username: process.env['DATABASE_USERNAME'],
password: process.env['DATABASE_PASSWORD'],
});
const db = drizzle(client);
警告:在此版本中,没有重大更改,但从
0.30.0
版本开始,如果你尝试使用Client
实例以外的任何实例,将会遇到错误。我们建议立即更改与 PlanetScale 的连接,以防止将来出现任何运行时错误。
之前我们的文档声明使用 connect()
,并且只有此函数可以传递给 Drizzle。在此版本中,根据 database-js
团队的建议,我们添加了对 new Client()
的支持并弃用了 connect()
。在此版本中,当你尝试传递 connect()
函数结果时,你将看到 warning
:
警告文本
Warning: You need to pass an instance of Client:
import { Client } from "@planetscale/database";
const client = new Client({
host: process.env["DATABASE_HOST"],
username: process.env["DATABASE_USERNAME"],
password: process.env["DATABASE_PASSWORD"],
});
const db = drizzle(client);
Starting from version 0.30.0, you will encounter an error if you attempt to use anything other than a Client instance.
Please make the necessary changes now to prevent any runtime errors in the future