# データベース設定ガイド

## ローカル開発(Docker Compose)

### 1. 起動
```bash
# データベースとAPIを起動
docker-compose up -d

# ログを確認
docker-compose logs -f
```

### 2. データベース初期化
```bash
# APIコンテナに入る
docker-compose exec api bash

# マイグレーション実行
alembic upgrade head

# マスタデータ投入
python init_db.py
```

## Supabase連携

### 1. Supabaseプロジェクト作成
1. [Supabase](https://supabase.com)でプロジェクト作成
2. Settings > Database から接続情報を取得

### 2. 環境変数設定
```bash
# .env
DATABASE_URL_SUPABASE=postgresql+asyncpg://postgres.[project-ref]:[password]@aws-0-[region].pooler.supabase.com:5432/postgres
USE_SUPABASE=true
```

### 3. テーブル作成
Supabase SQL Editorで以下を実行:

```sql
-- Alembicのマイグレーションを実行
-- または直接SQLでテーブル作成
```

## Cloudflare Tunnel設定

### 1. トンネル作成
```bash
# Cloudflareダッシュボードでトンネル作成
# トークンを取得
```

### 2. 環境変数設定
```bash
# .env
CLOUDFLARE_TUNNEL_TOKEN=your-tunnel-token
```

### 3. 起動
```bash
# tunnelプロファイルを含めて起動
docker-compose --profile tunnel up -d
```

## データベーススキーマ

### users
- ユーザー情報(DID、ハンドル)

### card_master
- カードマスタデータ(16種類)

### user_cards
- ユーザー所有カード
- uniqueカードフラグ付き

### unique_card_registry
- グローバルuniqueカード登録
- 各カードIDにつき1人のみ所有可能

### draw_history
- ガチャ履歴

### gacha_pools
- ピックアップガチャ設定

## バックアップ

### ローカル
```bash
# バックアップ
docker-compose exec postgres pg_dump -U postgres aicard > backup.sql

# リストア
docker-compose exec -T postgres psql -U postgres aicard < backup.sql
```

### Supabase
- 自動バックアップが有効
- ダッシュボードからダウンロード可能