172 lines
5.2 KiB
Bash
Executable File
172 lines
5.2 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
# ==============================================================================
|
||
# Database Sample Export Script (LOKAL VERSİYON)
|
||
# Bu script önemli tablolardan örnek veri çeker ve mds/DATABASE_SAMPLES.md'ye yazar
|
||
# AI asistanların veritabanı yapısını anlaması için kullanılır
|
||
# ==============================================================================
|
||
|
||
# Kullanım:
|
||
# 1. Önce SSM port forwarding başlat: dbconnect
|
||
# 2. Yeni terminal aç ve çalıştır: bash scripts/export-db-samples.sh
|
||
|
||
OUTPUT_FILE="mds/DATABASE_SAMPLES.md"
|
||
DB_HOST="localhost"
|
||
DB_PORT="15432"
|
||
DB_USER="suggestbet"
|
||
DB_NAME="boilerplate_db"
|
||
PGPASSWORD="SuGGesT2026SecuRe"
|
||
|
||
export PGPASSWORD
|
||
|
||
# Veritabanı bağlantı kontrolü
|
||
if ! psql -h $DB_HOST -p $DB_PORT -U $DB_USER -d $DB_NAME -c "SELECT 1" > /dev/null 2>&1; then
|
||
echo "❌ Veritabanına bağlanılamadı!"
|
||
echo "📌 Önce SSM port forwarding başlat: dbconnect"
|
||
exit 1
|
||
fi
|
||
|
||
echo "📊 Veritabanı örnekleri çekiliyor..."
|
||
|
||
# Tarih
|
||
CURRENT_DATE=$(date '+%Y-%m-%d %H:%M')
|
||
|
||
# Markdown dosyasını oluştur
|
||
cat > $OUTPUT_FILE << EOF
|
||
# Database Sample Data
|
||
|
||
Bu dosya AI asistanların veritabanı yapısını anlaması için örnek veriler içerir.
|
||
**Son Güncelleme:** $CURRENT_DATE
|
||
|
||
> ⚠️ Bu dosya otomatik oluşturulmuştur. Elle düzenlemeyin.
|
||
> Script: \`scripts/export-db-samples.sh\`
|
||
|
||
---
|
||
|
||
## 📈 Tablo İstatistikleri
|
||
|
||
| Tablo | Kayıt Sayısı |
|
||
|-------|-------------|
|
||
EOF
|
||
|
||
# Tablo sayılarını çek
|
||
for table in countries leagues teams players matches predictions odd_categories odd_selections match_team_stats live_matches users app_settings; do
|
||
count=$(psql -h $DB_HOST -p $DB_PORT -U $DB_USER -d $DB_NAME -t -c "SELECT COUNT(*) FROM $table;" 2>/dev/null | tr -d ' ')
|
||
if [ -n "$count" ]; then
|
||
echo "| $table | $count |" >> $OUTPUT_FILE
|
||
fi
|
||
done
|
||
|
||
echo "" >> $OUTPUT_FILE
|
||
echo "---" >> $OUTPUT_FILE
|
||
echo "" >> $OUTPUT_FILE
|
||
|
||
# Örnek veriler
|
||
echo "## 🏟️ Matches (Son 5 Maç)" >> $OUTPUT_FILE
|
||
echo '```json' >> $OUTPUT_FILE
|
||
psql -h $DB_HOST -p $DB_PORT -U $DB_USER -d $DB_NAME -t -c "
|
||
SELECT json_agg(t) FROM (
|
||
SELECT id, match_name, sport, score_home, score_away, state,
|
||
to_timestamp(mst_utc/1000) as match_time
|
||
FROM matches
|
||
ORDER BY mst_utc DESC
|
||
LIMIT 5
|
||
) t;" 2>/dev/null >> $OUTPUT_FILE
|
||
echo '```' >> $OUTPUT_FILE
|
||
echo "" >> $OUTPUT_FILE
|
||
|
||
echo "## 🏆 Leagues (İlk 10)" >> $OUTPUT_FILE
|
||
echo '```json' >> $OUTPUT_FILE
|
||
psql -h $DB_HOST -p $DB_PORT -U $DB_USER -d $DB_NAME -t -c "
|
||
SELECT json_agg(t) FROM (
|
||
SELECT id, name, sport, country_id
|
||
FROM leagues
|
||
LIMIT 10
|
||
) t;" 2>/dev/null >> $OUTPUT_FILE
|
||
echo '```' >> $OUTPUT_FILE
|
||
echo "" >> $OUTPUT_FILE
|
||
|
||
echo "## ⚽ Teams (İlk 10)" >> $OUTPUT_FILE
|
||
echo '```json' >> $OUTPUT_FILE
|
||
psql -h $DB_HOST -p $DB_PORT -U $DB_USER -d $DB_NAME -t -c "
|
||
SELECT json_agg(t) FROM (
|
||
SELECT id, name, sport, logo_url
|
||
FROM teams
|
||
LIMIT 10
|
||
) t;" 2>/dev/null >> $OUTPUT_FILE
|
||
echo '```' >> $OUTPUT_FILE
|
||
echo "" >> $OUTPUT_FILE
|
||
|
||
echo "## 🌍 Countries (İlk 10)" >> $OUTPUT_FILE
|
||
echo '```json' >> $OUTPUT_FILE
|
||
psql -h $DB_HOST -p $DB_PORT -U $DB_USER -d $DB_NAME -t -c "
|
||
SELECT json_agg(t) FROM (
|
||
SELECT id, name, flag_url
|
||
FROM countries
|
||
LIMIT 10
|
||
) t;" 2>/dev/null >> $OUTPUT_FILE
|
||
echo '```' >> $OUTPUT_FILE
|
||
echo "" >> $OUTPUT_FILE
|
||
|
||
echo "## 🎯 Predictions (Son 5)" >> $OUTPUT_FILE
|
||
echo '```json' >> $OUTPUT_FILE
|
||
psql -h $DB_HOST -p $DB_PORT -U $DB_USER -d $DB_NAME -t -c "
|
||
SELECT json_agg(t) FROM (
|
||
SELECT match_id, prediction_json, created_at
|
||
FROM predictions
|
||
ORDER BY created_at DESC
|
||
LIMIT 5
|
||
) t;" 2>/dev/null >> $OUTPUT_FILE
|
||
echo '```' >> $OUTPUT_FILE
|
||
echo "" >> $OUTPUT_FILE
|
||
|
||
echo "## 📊 Match Team Stats (Örnek 5)" >> $OUTPUT_FILE
|
||
echo '```json' >> $OUTPUT_FILE
|
||
psql -h $DB_HOST -p $DB_PORT -U $DB_USER -d $DB_NAME -t -c "
|
||
SELECT json_agg(t) FROM (
|
||
SELECT match_id, team_id, possession_percentage, shots_on_target,
|
||
shots_off_target, corners, fouls
|
||
FROM match_team_stats
|
||
LIMIT 5
|
||
) t;" 2>/dev/null >> $OUTPUT_FILE
|
||
echo '```' >> $OUTPUT_FILE
|
||
echo "" >> $OUTPUT_FILE
|
||
|
||
echo "## 💰 Odd Categories (Örnek 5)" >> $OUTPUT_FILE
|
||
echo '```json' >> $OUTPUT_FILE
|
||
psql -h $DB_HOST -p $DB_PORT -U $DB_USER -d $DB_NAME -t -c "
|
||
SELECT json_agg(t) FROM (
|
||
SELECT db_id, match_id, name, category_json_id
|
||
FROM odd_categories
|
||
LIMIT 5
|
||
) t;" 2>/dev/null >> $OUTPUT_FILE
|
||
echo '```' >> $OUTPUT_FILE
|
||
echo "" >> $OUTPUT_FILE
|
||
|
||
echo "## 🎰 Odd Selections (Örnek 10)" >> $OUTPUT_FILE
|
||
echo '```json' >> $OUTPUT_FILE
|
||
psql -h $DB_HOST -p $DB_PORT -U $DB_USER -d $DB_NAME -t -c "
|
||
SELECT json_agg(t) FROM (
|
||
SELECT db_id, odd_category_db_id, name, odd_value, position
|
||
FROM odd_selections
|
||
LIMIT 10
|
||
) t;" 2>/dev/null >> $OUTPUT_FILE
|
||
echo '```' >> $OUTPUT_FILE
|
||
echo "" >> $OUTPUT_FILE
|
||
|
||
echo "## ⚙️ App Settings" >> $OUTPUT_FILE
|
||
echo '```json' >> $OUTPUT_FILE
|
||
psql -h $DB_HOST -p $DB_PORT -U $DB_USER -d $DB_NAME -t -c "
|
||
SELECT json_agg(t) FROM (
|
||
SELECT key, value
|
||
FROM app_settings
|
||
) t;" 2>/dev/null >> $OUTPUT_FILE
|
||
echo '```' >> $OUTPUT_FILE
|
||
echo "" >> $OUTPUT_FILE
|
||
|
||
echo "---" >> $OUTPUT_FILE
|
||
echo "" >> $OUTPUT_FILE
|
||
echo "_Bu dosya \`scripts/export-db-samples.sh\` tarafından oluşturulmuştur._" >> $OUTPUT_FILE
|
||
|
||
echo "✅ Export tamamlandı: $OUTPUT_FILE"
|