Saltar al contenido principal

Drizzle y D1

1. Instalaciones

  1. drizzle-orm:El paquete base que permite definir el esquema y crear comandos SQL utilizando la sintaxis de TypeScript de Drizzle.
  2. drizzle-kit:Un paquete para ayudar con las migraciones de bases de datos, y también viene incluido con Drizzle Studio: una interfaz de usuario para visualizar las tablas de la base de datos y realizar inserciones y cambios de datos.
  3. El controlador (adaptador) del proveedor de base de datos para Drizzle.
# NPM
npm i drizzle-orm
npm i -D drizzle-kit

# Bun
bun add drizzle-orm
bun add -D drizzle-kit tsx
# NPM
npm i @libsql/client

# Bun
bun add @libsql/client

2. Config

drizzle.config.ts
import { defineConfig } from 'drizzle-kit';

export default defineConfig({
  dialect: 'sqlite',
  driver: 'd1-http',

  dbCredentials: {
    accountId: '',
    databaseId: '',
    token: ''

  },

  schema: './src/lib/server/schema.ts',
  out: './drizzle'
});

Carpeta para migraciones

  • Crear carpeta en la raiz del proyecto, ejemplo; /drizzle

3. Esquemas

import { integer, sqliteTable, text } from 'drizzle-orm/sqlite-core';

export const usersTable = sqliteTable('users', {
  id: integer({ mode: 'number' }).primaryKey({ autoIncrement: true }),
  fullName: text('full_name'),
  email: text('email', { length: 255 }),
  phone: text('phone', { length: 30 })
});

4. Migraciones

1. Generar migración

  • En esta etapa, la base de datos física aún no se modificará; esto solo prepara el SQL que luego se enviará de manera interna.
bunx drizzle-kit generate

2. Aplicar en la base de datos

bunx drizzle-kit migrate