找回密码
 立即注册
首页 业界区 安全 Drizzle ORM:轻量级数据库工具

Drizzle ORM:轻量级数据库工具

缢闸 11 小时前
Drizzle ORM:轻量级数据库工具

在上一章中,我们探讨了 Cloudflare D1 如何作为一款高性能、低成本的边缘数据库解决方案,彻底改变了我们对数据库架构的认知.
1.png

但一般来说,我们很少在项目里裸写sql,所以我们需要一个能简化操作和开发的ORM工具,但市面上绝大多数的ORM对于这种ServerLess数据库的适配很差,需要解决各种依赖问题。 那么在尝试了一圈后,发现Drizzle是最好的搭配方案,选择它最核心的理由是:它没有三方依赖、且对ServerLess这个场景非常友好。 [Drizzle地址](https://orm.drizzle.team/),建议看文档,中文只是阅读起来快一点,精简一点。
Schema:数据模型定义

Schema 是 Drizzle ORM 的基础,它定义了数据库表的结构和关系。
基本表定义

以下是一个简单的表定义示例:
  1. import { sqliteTable, text, integer } from 'drizzle-orm/sqlite-core'
  2. // 定义用户表
  3. export const users = sqliteTable('users', {
  4.   id: integer('id').primaryKey(),
  5.   name: text('name').notNull(),
  6.   email: text('email').notNull().unique(),
  7.   createdAt: integer('created_at', { mode: 'timestamp' }).notNull().defaultNow()
  8. })
复制代码
Schema 组织方式

Drizzle 允许你灵活组织 Schema 文件,可以选择单文件或多文件方式:
单文件方式

适合小型项目,将所有表定义放在一个 schema.ts 文件中:
  1. // src/db/schema.ts
  2. import { sqliteTable, text, integer } from 'drizzle-orm/sqlite-core'
  3. export const users = sqliteTable('users', {
  4.   /* 列定义 */
  5. })
  6. export const posts = sqliteTable('posts', {
  7.   /* 列定义 */
  8. })
复制代码
多文件方式

对于大型项目,可以将表定义分散到多个文件中:
[code]
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册