Drizzle y D1
1. Instalaciones
drizzle-orm:El paquete base que permite definir el esquema y crear comandos SQL utilizando la sintaxis de TypeScript de Drizzle.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.- 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