对于内置的 migrate 函数和 DDL 迁移,我们和驱动程序强烈建议你使用单个 client 连接。
对于查询,你可以根据业务需求随意使用 client 或 pool。
要将 Drizzle 与 SingleStore 数据库结合使用,你应该使用 mysql2 驱动程序
Drizzle ORM 原生支持 mysql2 和 drizzle-orm/singlestore 包。
npm i drizzle-orm mysql2 -D drizzle-kit
import { drizzle } from "drizzle-orm/singlestore";
const db = drizzle(process.env.DATABASE_URL);
const response = await db.select().from(...)如果你需要提供现有的驱动程序:
import { drizzle } from "drizzle-orm/singlestore";
import mysql from "mysql2/promise";
const connection = await mysql.createConnection({
host: "host",
user: "user",
database: "database",
...
});
const db = drizzle({ client: connection });对于内置的 migrate 函数和 DDL 迁移,我们和驱动程序强烈建议你使用单个 client 连接。
对于查询,你可以根据业务需求随意使用 client 或 pool。
目前,SingleStore 方言存在一些限制和功能,无法在 SingleStore 数据库端使用:
SingleStore 的串行列类型仅确保列值的唯一性。
ORDER BY 和 LIMIT 不能链接在一起。
不支持外键(已检查)。
SingleStore 不支持 INTERSECT ALL 和 EXCEPT ALL 操作。
SingleStore 不支持嵌套事务。
单存储 仅支持 和 isolationLevel。
DATE、TIMESTAMP 和 DATETIME 中的 FSP 选项不受支持。
关系型 API 不受支持,SingleStore 团队开发完所有必要的 API 后,将会实现该 API。
由于 SingleStore 与 MySQL 并非 100% 兼容,因此可能会有更多限制。