drizzle-orm-patterns
Drizzle ORM-Muster für PostgreSQL-Datenbanken verwenden
Das Erstellen typsicherer Datenbankabfragen mit Drizzle ORM kann komplex sein. Dieses Skill bietet vollständige Muster für Abfragen, Transaktionen, Migrationen und Edge-Deployment mit automatisierter Sicherheitsvalidierung.
스킬 ZIP 다운로드
Claude에서 업로드
설정 → 기능 → 스킬 → 스킬 업로드로 이동
토글을 켜고 사용 시작
테스트해 보기
"drizzle-orm-patterns" 사용 중입니다. Hilf mir, eine Drizzle ORM-Abfrage zu schreiben, um Benutzer mit ihren Bestellungen zu erhalten
예상 결과:
- Verwende einen LEFT JOIN, um Benutzer mit ihren Bestellungen abzurufen:
- ```typescript
- const usersWithOrders = await db
- .select({
- userId: users.id,
- userName: users.name,
- orderCount: count(orders.id),
- })
- .from(users)
- .leftJoin(orders, eq(users.id, orders.userId))
- .groupBy(users.id, users.name);
- ```
- Dies vermeidet N+1-Abfragen durch Verwendung einer einzelnen Abfrage mit Aggregation.
"drizzle-orm-patterns" 사용 중입니다. Wie erstelle ich eine Transaktion, die bei Fehler zurückgerollt wird
예상 결과:
- Verwende db.transaction() mit async Callback und automatischem Rollback:
- ```typescript
- await db.transaction(async (tx) => {
- const [user] = await tx.insert(users).values({ email, name }).returning();
- await tx.insert(profiles).values({ userId: user.id, bio });
- // If any operation fails, entire transaction rolls back
- });
- ```
- Alle Operationen sind gemeinsam erfolgreich oder schlagen gemeinsam fehl.
"drizzle-orm-patterns" 사용 중입니다. Meinen Code auf SQL-Injection-Risiken validieren
예상 결과:
- Führe den Validator auf deinen TypeScript-Dateien aus:
- ```bash
- python3 validate-queries.py src/**/*.ts
- ```
- Das Skript prüft auf String-Interpolation in sql-Templates, N+1-Abfragen, fehlende Paginierung und Typsicherheitsprobleme. Gibt Exit-Code 1 zurück, wenn Fehler gefunden wurden.
보안 감사
안전All 931 static findings are FALSE POSITIVES. The static analyzer misidentified TypeScript template literals as shell commands, vulnerable code examples as actual exploits, and standard database patterns as sensitive data access. This is legitimate documentation with a defensive security validator tool that only reads files specified by the user. No malicious intent, no credential access, no data exfiltration, no persistence mechanisms.
위험 요인
⚡ 스크립트 포함 (1)
📁 파일 시스템 액세스 (1)
⚙️ 외부 명령어 (1)
🔑 환경 변수 (1)
품질 점수
만들 수 있는 것
Typsichere Datenbankschichten erstellen
Robuste Datenzugriffsschichten mit Drizzle ORM-Mustern für Produktionsanwendungen erstellen.
Edge-kompatiblen Datenbankcode deployen
Datenbankoperationen implementieren, die in Vercel Edge Functions und serverlosen Umgebungen laufen.
Schema-Migrationen sicher verwalten
Datenbankmigrationen mit Rollback-Strategien und Zero-Downtime-Deployment-Mustern ausführen.
이 프롬프트를 사용해 보세요
Verwende das drizzle-orm-patterns Skill, um mir zu helfen, eine Drizzle ORM-Abfrage zu schreiben, die Benutzer auswählt, bei denen status gleich 'active' ist und created_at nach dem 1. Januar 2024 liegt.
Zeige mir, wie ich Drizzle ORM-Transaktionen mit ordnungsgemäßer Rollback-Behandlung verwende, um einen Benutzer und sein Profil zusammen zu erstellen.
Hilf mir, Drizzle ORM für Vercel Edge Runtime mit Neon serverless PostgreSQL zu konfigurieren.
Verwende das validate-queries.py Skript, um meine user-service.ts Datei auf SQL-Injection-Risiken und Performance-Probleme zu überprüfen.
모범 사례
- Immer parametrisierte Abfragen mit eq(), like() und anderen Operatoren verwenden statt String-Interpolation
- Indizes auf Fremdschlüssel und häufig abgefragte Spalten für bessere Performance hinzufügen
- Transaktionen kurz halten und externe API-Aufrufe innerhalb von Transaktionsblöcken vermeiden
피하기
- String-Interpolation in sql-Templates verwenden, was zu SQL-Injection führen kann
- Abfragen innerhalb von Schleifen durchführen, was N+1-Performance-Probleme verursacht
- select() ohne Angabe von Feldern oder Limit im Produktionscode verwenden
자주 묻는 질문
Welche PostgreSQL-Treiber funktionieren mit Drizzle ORM?
Was sind die Grenzen von Edge Runtime-Transaktionen?
Wie integriere ich mit bestehenden Datenbankschemas?
Sind meine Daten sicher, wenn ich das Validierungsskript verwende?
Warum ist meine Abfrage langsam?
Wie verhält sich Drizzle im Vergleich zu Prisma?
개발자 세부 정보
라이선스
MIT
참조
main