<< All versions
Skill v1.0.1
currentAutomated scan100/100majiayu000/claude-skill-registry-data/db
3 files
──Details
PublishedMay 29, 2026 at 11:41 PM
Content Hashsha256:2d1e2b34174a9da5...
Git SHAd5fe76cf7ef1
Bump Typepatch
──Files
Files (1 file, 5.6 KB)
SKILL.md5.6 KBactive
SKILL.md · 252 lines · 5.6 KB
version: "1.0.1" name: db description: Gère le schéma Prisma et les migrations de Motivia. Utilise ce skill quand l'utilisateur demande de modifier la base de données, ajouter une table, un champ, une relation, ou effectuer une migration. PostgreSQL avec Prisma ORM. allowed-tools: Read, Write, Edit, Bash, Glob, Grep
Base de Données Motivia
Stack technique
- ORM: Prisma
- BDD: PostgreSQL (Neon)
- Fichier schema:
prisma/schema.prisma
Commandes Prisma
bash
# Développementpnpm prisma generate # Générer le client Prismapnpm prisma migrate dev # Créer et appliquer une migrationpnpm prisma migrate dev --name add_feature # Migration nomméepnpm prisma db push # Push direct (dev seulement)# Productionpnpm prisma migrate deploy # Appliquer les migrations# Utilitairespnpm prisma studio # Interface graphiquepnpm prisma db seed # Exécuter le seedpnpm prisma format # Formater le schema
Modèles existants
User (central)
prisma
model User {id String @id @default(cuid())email String @uniquename String @default("")firstName String?lastName String?profileTitle String?localisation String?image String?emailVerified Boolean @default(false)freeLetters Int @default(5)keyAchievements String[]softSkills String[]technicalSkills String[]createdAt DateTime @default(now())updatedAt DateTime @updatedAt// Relationsaccounts Account[]sessions Session[]apiKeys ApiKey[]experiences Experience[]degrees Degree[]links Link[]projects Project[]motivationLetters MotivationLetter[]userCV UserCV?}
Entités métier
| Modèle | Description | Relation | |
|---|---|---|---|
| Experience | Expériences pro | User 1:N | |
| Degree | Diplômes | User 1:N | |
| Project | Projets portfolio | User 1:N | |
| Link | Liens sociaux | User 1:N | |
| MotivationLetter | Lettres générées | User 1:N | |
| UserCV | CV PDF uploadé | User 1:1 | |
| ApiKey | Clés API providers | User 1:N |
Auth (Better Auth)
| Modèle | Description | |
|---|---|---|
| Account | Comptes OAuth/credentials | |
| Session | Sessions utilisateur | |
| Verification | Tokens de vérification | |
| Authenticator | WebAuthn |
Conventions de schéma
Champs obligatoires
prisma
model NouveauModele {id String @id @default(cuid())// ... champs métieruserId StringcreatedAt DateTime @default(now())updatedAt DateTime @updatedAtuser User @relation(fields: [userId], references: [id], onDelete: Cascade)@@index([userId])}
Types courants
| Usage | Type Prisma | |
|---|---|---|
| ID | String @id @default(cuid()) | |
String @unique | ||
| Texte court | String | |
| Texte long | String (pas de @db.Text nécessaire) | |
| Date | DateTime | |
| Date optionnelle | DateTime? | |
| Booléen | Boolean @default(false) | |
| Entier | Int @default(0) | |
| Liste de strings | String[] |
Relations
prisma
// 1:N (User a plusieurs Experience)model User {experiences Experience[]}model Experience {userId Stringuser User @relation(fields: [userId], references: [id], onDelete: Cascade)}// 1:1 (User a un CV)model User {userCV UserCV?}model UserCV {userId String @uniqueuser User @relation(fields: [userId], references: [id], onDelete: Cascade)}
Enum
prisma
enum ApiProvider {OPENAIANTHROPICMISTRALXAI}model ApiKey {provider ApiProvider}
Workflow modification de schéma
1. Modifier le schéma
prisma
// prisma/schema.prismamodel User {// Ajouter un nouveau champnewField String?}
2. Créer la migration
bash
pnpm prisma migrate dev --name add_new_field
3. Mettre à jour le code
- Server actions dans
app/actions/ - Schémas Zod dans
utils/schemas.ts
Ajouter un nouveau modèle
1. Définir le modèle
prisma
model NewEntity {id String @id @default(cuid())name Stringdescription String?isActive Boolean @default(true)userId StringcreatedAt DateTime @default(now())updatedAt DateTime @updatedAtuser User @relation(fields: [userId], references: [id], onDelete: Cascade)@@index([userId])}
2. Ajouter la relation dans User
prisma
model User {// ... existing fieldsnewEntities NewEntity[]}
3. Créer la migration
bash
pnpm prisma migrate dev --name add_new_entity
4. Créer les server actions
Créer app/actions/new-entity.ts avec le pattern habituel.
Bonnes pratiques
Indexes
prisma
@@index([userId]) // Toujours indexer les FK@@index([createdAt]) // Si tri fréquent@@unique([userId, name]) // Contrainte d'unicité
Cascade
Toujours utiliser onDelete: Cascade pour les relations avec User afin de supprimer les données orphelines.
Migrations en production
- Tester localement avec
migrate dev - Commit des fichiers de migration
- En production:
migrate deploy(via script build)
Checklist nouvelle table
- [ ] ID avec
@id @default(cuid()) - [ ]
createdAtetupdatedAt - [ ]
userIdavec relation etonDelete: Cascade - [ ]
@@index([userId]) - [ ] Relation ajoutée dans User
- [ ] Migration créée et testée
- [ ] Server actions créées
- [ ] Schéma Zod ajouté