对于内置的 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% 兼容,因此可能会有更多限制。