sky-data
Skill8 starsChanged 6 days agoMITView on GitHub
Veritabanı katmanı: şema tasarımı, ilişkiler, migration, indeksleme, sorgu performansı, N+1, transaction, soft delete, çok kiracılı (multi-tenant) veri, Prisma/Drizzle/Supabase/Postgres/ SQLite kalıpları. Tablo/model eklerken, migration yazarken veya yavaş sorguları incelerken kullan.
In this repository213 other files it gives its agents.
- sky-3dSkill
- sky-a11y-auditorSkill
- sky-a11ySkill
- sky-ai-agentsSkill
- sky-ai-evalSkill
- sky-aiSkill
- sky-ai-uxSkill
- sky-algorithmsSkill
- sky-androidSkill
- sky-angularSkill
- sky-ansibleSkill
- sky-api-reviewerSkill
- sky-architectSkill
- sky-architecture-docsSkill
- sky-architecture-patternsSkill
- sky-astroSkill
- sky-audit-historySkill
- sky-authSkill
- sky-auth-uxSkill
- sky-awsSkill
- sky-azureSkill
- sky-baasSkill
- sky-backend-apiSkill
- sky-botsSkill
- sky-brandSkill
- sky-browser-apisSkill
- sky-browser-extensionSkill
- sky-browser-qaSkill
- sky-builderSkill
- sky-build-fixerSkill
- sky-cachingSkill
- sky-canvasSkill
- sky-changelogSkill
- sky-chat-productSkill
- sky-checkout-uxSkill
- sky-claude-codeSkill
- sky-claude-mdSkill
- sky-cli-toolsSkill
- sky-cloudflareSkill
- sky-cmsSkill
- sky-codebase-mapperSkill
- sky-code-reviewerSkill
- sky-code-reviewSkill
- sky-code-styleSkill
- sky-colorSkill
- sky-cppSkill
- sky-criticSkill
- sky-cryptoSkill
- sky-css-modernSkill
- sky-dashboardSkill
- sky-data-analysisSkill
- sky-data-pipelinesSkill
- sky-datavizSkill
- sky-date-timeSkill
- sky-db-reviewerSkill
- sky-debuggerSkill
- sky-debugSkill
- sky-deploySkill
- sky-designerSkill
- sky-design-systemSkill
- The first 60 shown.
The file
Files
Sky · Veri
Şema tasarımı
- Birincil anahtar:
uuid(v7 tercih — sıralı) veyabigint identity. Dışa açılan ID tahmin edilemez olmalı. - Her tabloda
created_at timestamptz default now(),updated_at timestamptz. - Para:
numeric(12,2)veya kuruş cinsindenbigint; asla float. - Zaman:
timestamptz(UTC sakla, kullanıcı saat diliminde göster). - Enum'lar için Postgres
enumveyacheckkısıtı; serbest metin değil. NOT NULLvarsayılan; null'ı bilinçli seç.- Benzersizlik iş kuralıysa veritabanında
uniquekısıtı — yalnızca uygulamada kontrol yarışa açıktır. - Yabancı anahtar +
on deletedavranışı açıkça (cascade/restrict/set null). - E-posta gibi alanlarda büyük/küçük harf duyarsız benzersizlik (
citextveyalower()indeksi).
İndeksler
- Her yabancı anahtar sütununa indeks.
WHERE+ORDER BYbirlikte kullanılan sütunlara bileşik indeks (eşitlik sütunları önce).- Kısmi indeks:
where deleted_at is null. - Şüphede
EXPLAIN ANALYZEçalıştır;Seq Scanbüyük tabloda alarm.
Sorgu kalıpları
- N+1'den kaçın: listede ilişki gerekiyorsa
include/with/join ya daIN (...)toplu sorgu. - Yalnızca gereken sütunları seç (
select). - Sayfalama cursor ile (
where id > $cursor order by id limit 20); büyükOFFSETyavaştır. - Birden çok yazma tek iş birimiyse transaction.
- Sayaç/stok gibi yarışa açık güncellemeler: atomik
update ... set x = x - 1 where x > 0veya satır kilidi (select ... for update).
Migration kuralları
- Her şema değişikliği migration dosyasıyla; elle prod DB'ye dokunma.
- Geriye uyumlu adımlar (expand → migrate → contract):
- Yeni sütunu nullable ekle, 2. kodu iki sütunu da yazacak şekilde dağıt,
- veriyi doldur, 4.
NOT NULLyap, 5. eski sütunu kaldır.
- Büyük tabloda indeks:
CREATE INDEX CONCURRENTLY. - Migration'ı geri alma planıyla yaz; yıkıcı adımları (drop) ayrı migration'da yap ve kullanıcıya sor.
Çok kiracılı veri
- Her kiracıya ait tabloda
tenant_id/org_id+ indeks. - Tüm sorgular bu filtreyi içersin — tercihen repository katmanında zorunlu veya Postgres RLS.
Soft delete
deleted_at timestamptz null; varsayılan sorgulardeleted_at is nullfiltresiyle.- KVKK/GDPR silme talebi için gerçek silme veya anonimleştirme yolu ayrıca olsun.
ORM notları
Drizzle: şema TS'de, drizzle-kit generate → migration; ilişkiler için relations().
Prisma: prisma migrate dev (lokal) / migrate deploy (prod); select ile alan kısıtla;
seri ortamda tek PrismaClient örneği (global singleton).
Supabase: her tabloda RLS politikası; auth.uid() ile sahiplik; istemci yalnızca anon key.
Seed & test verisi
seed.tsdeterministik; test kullanıcıları ve örnek kayıtlar.- Testler gerçek bir test DB'sinde (Docker/SQLite) transaction içinde çalışıp geri alınsın.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

