Skip to content
Back to skills

Scx Database Management

ASecurity

SCX-Studio-Pro projesinin Prisma ORM ve SQLite tabanlı veritabanı şemasını, model ilişkilerini, migrasyon süreçlerini ve veri yönetimini açıklar.

  • 4 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 12, 2026
databasestypescriptgobashsqlapidatabasesecurity

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 12, 2026

npx -y skills add aibot88/sec_skill_store --skill scx-database-management --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Scx Database Management?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Scx Database Management
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/aibot88-scx-database-management/badge)](https://www.skillsdirectory.com/skills/aibot88-scx-database-management)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: scx-database-management
description: SCX-Studio-Pro projesinin Prisma ORM ve SQLite tabanlı veritabanı şemasını, model ilişkilerini, migrasyon süreçlerini ve veri yönetimini açıklar.
---

# SCX-Studio-Pro Veritabanı Yönetimi

Bu skill, SCX-Studio-Pro projesinin veritabanı yapısını ve yönetimiyle ilgili süreçleri detaylandırır. Proje, **Prisma ORM** ve **SQLite** kullanmaktadır.

## 1. Veritabanı Şeması (`prisma/schema.prisma`)

`prisma/schema.prisma` dosyası, projenin tüm veritabanı modellerini ve ilişkilerini tanımlar. Aşağıda kritik modeller ve ilişkileri özetlenmiştir:

### 1.1. `User` Modeli

Kullanıcı bilgilerini (isim, e-posta, roller, API anahtarları vb.) saklar. Diğer birçok modelle bire-çok veya bire-bir ilişkisi vardır.

| Alan Adı | Tipi | Açıklama |
| :--- | :--- | :--- |
| `id` | `String` | Kullanıcı ID (cuid) |
| `name` | `String?` | Kullanıcı adı |
| `email` | `String?` | Kullanıcı e-postası (unique) |
| `emailVerified` | `DateTime?` | E-posta doğrulama tarihi |
| `image` | `String?` | Profil resmi URL'si |
| `isAdult` | `Boolean` | Yetişkin onayı (varsayılan: `false`) |
| `role` | `String` | Kullanıcı rolü (varsayılan: `"USER"`) |
| `gender` | `String?` | Cinsiyet |
| `apiKeys` | `String?` | Kullanıcının API anahtarlarını JSON olarak saklar |
| `createdAt` | `DateTime` | Oluşturulma tarihi |
| `updatedAt` | `DateTime` | Son güncelleme tarihi |
| `accounts` | `Account[]` | Kullanıcının hesapları (NextAuth) |
| `adminActions` | `AdminAction[]` | Admin eylemleri |
| `albums` | `Album[]` | Kullanıcının albümleri |
| `characters` | `CharacterDNA[]` | Kullanıcının karakter DNA'ları |
| `generatedImages` | `GeneratedImage[]` | Kullanıcının ürettiği görseller |
| `securitySettings` | `UserSecuritySettings?` | Kullanıcının güvenlik ayarları (bire-bir ilişki) |

### 1.2. `CharacterDNA` Modeli

Karakterlerin genetik bilgilerini ve görsel referanslarını saklar. Bir `User`'a aittir.

| Alan Adı | Tipi | Açıklama |
| :--- | :--- | :--- |
| `id` | `String` | Karakter ID (cuid) |
| `userId` | `String` | İlişkili kullanıcı ID'si |
| `name` | `String?` | Karakter adı (varsayılan: `"Ana Karakter"`) |
| `isMainCharacter` | `Boolean` | Ana karakter mi (varsayılan: `false`) |
| `faceImages` | `String?` | Yüz görselleri (JSON string) |
| `poseReference` | `String?` | Poz referans görseli |
| `view360PackJson` | `String?` | 360 derece görünüm paketi (JSON string) |
| `user` | `User` | İlişkili kullanıcı (bire-çok) |

### 1.3. `GeneratedImage` Modeli

Üretilen görsellerin detaylarını, kullanılan prompt'ları ve depolama bilgilerini saklar. Bir `User`'a aittir ve isteğe bağlı olarak bir `Album`'e bağlı olabilir.

| Alan Adı | Tipi | Açıklama |
| :--- | :--- | :--- |
| `id` | `String` | Görsel ID (cuid) |
| `userId` | `String` | İlişkili kullanıcı ID'si |
| `promptUsed` | `String` | Görsel üretiminde kullanılan prompt |
| `imageUrl` | `String` | Görselin URL'si |
| `storageSource` | `String` | Depolama kaynağı (varsayılan: `"external"`) |
| `driveFileId` | `String?` | Google Drive dosya ID'si |
| `albumId` | `String?` | İlişkili albüm ID'si |
| `engineUsed` | `String` | Kullanılan AI motoru (varsayılan: `"fal_ai_flux_pulid"`) |
| `isNsfw` | `Boolean` | NSFW içeriği mi (varsayılan: `false`) |
| `user` | `User` | İlişkili kullanıcı (bire-çok) |
| `album` | `Album?` | İlişkili albüm (bire-çok) |

### 1.4. `Album` Modeli

Kullanıcıların görsellerini organize ettiği albümleri temsil eder. Bir `User`'a aittir.

| Alan Adı | Tipi | Açıklama |
| :--- | :--- | :--- |
| `id` | `String` | Albüm ID (cuid) |
| `userId` | `String` | İlişkili kullanıcı ID'si |
| `name` | `String` | Albüm adı |
| `kind` | `String` | Albüm türü (varsayılan: `"standard"`) |
| `visibilityMode` | `String` | Görünürlük modu (varsayılan: `"normal"`) |
| `requiresPin` | `Boolean` | PIN gerektiriyor mu (varsayılan: `false`) |
| `user` | `User` | İlişkili kullanıcı (bire-çok) |
| `images` | `GeneratedImage[]` | Albümdeki görseller |

### 1.5. `UserSecuritySettings` Modeli

Kullanıcıya özel güvenlik ve sağlayıcı ayarlarını saklar. Bir `User` ile bire-bir ilişkisi vardır.

| Alan Adı | Tipi | Açıklama |
| :--- | :--- | :--- |
| `id` | `String` | Ayar ID (cuid) |
| `userId` | `String` | İlişkili kullanıcı ID'si |
| `providerDefaults` | `String?` | Sağlayıcı varsayılanları (JSON string) |
| `providerPools` | `String?` | Sağlayıcı havuzları (JSON string) |
| `selfHostConfig` | `String?` | Self-host yapılandırması (JSON string) |
| `user` | `User` | İlişkili kullanıcı (bire-bir) |

## 2. Migrasyonlar

Veritabanı şemasında yapılan değişiklikler, Prisma migrasyonları aracılığıyla yönetilir. Yeni bir değişiklik yapıldığında aşağıdaki komutlar kullanılır:

```bash
npx prisma migrate dev --name <migration_name>
```

Bu komut, şema değişikliklerini algılar, yeni bir migrasyon dosyası oluşturur ve veritabanına uygular.

## 3. Veritabanı Erişimi

Prisma Client, `lib/core/prisma.ts` üzerinden projenin geri kalanına sağlanır. Veritabanı işlemleri için doğrudan `prisma` objesi kullanılır.

```typescript
import { prisma } from '@/lib/core/prisma';

// Örnek kullanım
const user = await prisma.user.findUnique({ where: { id: userId } });
```

## 4. Bilinen Sorunlar ve Çözümler

*   **`SecuritySettings` Hatası:** Yeni bir kullanıcı oluşturulduğunda veya mevcut kullanıcıda üretim hatası alındığında, `scripts/fix-user-settings.ts` scriptini çalıştırarak varsayılan sağlayıcı ayarlarını (SecuritySettings) veritabanına ekleyin.

Bu skill, SCX-Studio-Pro veritabanı yapısını ve yönetimini anlamak için kapsamlı bir rehber sunar.

Files in this skill

  • SKILL.md5.7 KB
  • source.json702 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.