@ 细雨适应器/ mysql- core
Drizzle适配器生态系统共享MySQL功能.
概览
这个 @drizzle-adapter/mysql-core 软件包提供了MySQL兼容适配器在Drizzle适配器生态系统中使用的共享MySQL功能. 此软件包是一个内部依赖:
目的
这个软件包将 MySQL 特定功能标准化,跨越不同的 MySQL 兼容适配器:
- 常见 MySQL 数据类型定义
- 共享 MySQL 查询建筑逻辑
- 统一 MySQL 错误处理
- 常见 MySQL 工具函数
安装
# This package is typically not installed directly but as a dependency of MySQL adapters
pnpm install @drizzle-adapter/mysql-core
适用于适配器开发者
如果您正在为 Drizzle 适应器生态系统开发一个新的 MySQL 兼容适配器, 您应该使用此软件包来确保与其他 MySQL 适配器的一致性 :
import { MySQLDrizzleDataTypes } from '@drizzle-adapter/mysql-core';
export class YourMySQLAdapter implements DrizzleAdapterInterface {
public getDataTypes(): MySQLDrizzleDataTypes {
return new MySQLDrizzleDataTypes();
}
// ... rest of your adapter implementation
}
数据类型
该包提供了标准化的 MySQL 数据类型定义:
const dataTypes = new MySQLDrizzleDataTypes();
const table = dataTypes.dbTable('example', {
// Numeric types
id: dataTypes.dbBigInt('id', { mode: 'number' }).primaryKey().autoincrement(),
count: dataTypes.dbInt('count'),
price: dataTypes.dbDecimal('price', { precision: 10, scale: 2 }),
// String types
name: dataTypes.dbVarChar('name', { length: 255 }),
description: dataTypes.dbText('description'),
// Date/Time types
createdAt: dataTypes.dbTimestamp('created_at').defaultNow(),
updatedAt: dataTypes.dbTimestamp('updated_at').onUpdateNow(),
// Other types
status: dataTypes.dbEnum('status', ['active', 'inactive']),
metadata: dataTypes.dbJson('metadata'),
isEnabled: dataTypes.dbBoolean('is_enabled')
});
处理错误
该软件包为 MySQL 特定错误提供统一错误处理:
import { handleMySQLError } from '@drizzle-adapter/mysql-core';
try {
// Your database operation
} catch (error) {
throw handleMySQLError(error);
}
查询大楼
该套件包括用于构建 MySQL 特定查询的公用事业:
import {
buildInsertQuery,
buildUpdateQuery,
buildDeleteQuery,
buildSelectQuery
} from '@drizzle-adapter/mysql-core';
// Build INSERT query
const insertQuery = buildInsertQuery(table, data);
// Build UPDATE query with JSON operations
const updateQuery = buildUpdateQuery(table, {
metadata: sql`JSON_SET(metadata, '$.key', 'value')`
});
// Build DELETE query with conditions
const deleteQuery = buildDeleteQuery(table, conditions);
// Build SELECT query with joins
const selectQuery = buildSelectQuery({
table,
joins: [...],
conditions: [...],
orderBy: [...]
});
类型映射
该软件包处理 MySQL 特定类型映射 :
import { mapMySQLType } from '@drizzle-adapter/mysql-core';
// Map JavaScript types to MySQL types
const mysqlType = mapMySQLType(value);
// Map MySQL types to JavaScript types
const jsValue = mapToJavaScript(mysqlValue, mysqlType);
捐款
这个软件包作为Drizzle适配器生态系统的一部分得以维护. 如果你愿意贡献:
- 叉子存储器
- 创建您的特性分支( E)
git checkout -b feature/amazing-feature(中文(简体) ) - 提交更改( E)
git commit -m 'Add some amazing feature'(中文(简体) ) - 推向分行(
git push origin feature/amazing-feature(中文(简体) ) - 打开拉请求
相关软件包
- @ 细雨适应器/ 核心 - 核心接口和类型
- @ 细雨适应器/ mysql2 - 使用 Mysql2 的 MySQL 适配器
- @ 细雨适应器/ tidb- server - TiDB 无服务器适配器