This commit is contained in:
Executable
+140
@@ -0,0 +1,140 @@
|
||||
# ==============================================================================
|
||||
# Database Sample Export Script (WINDOWS VERSİYONU)
|
||||
# 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 PowerShell aç ve çalıştır: .\scripts\export-db-samples.ps1
|
||||
|
||||
$OutputFile = "mds\DATABASE_SAMPLES.md"
|
||||
$DbHost = "localhost"
|
||||
$DbPort = "15432"
|
||||
$DbUser = "suggestbet"
|
||||
$DbName = "boilerplate_db"
|
||||
$env:PGPASSWORD = "SuGGesT2026SecuRe"
|
||||
|
||||
# psql yolunu kontrol et
|
||||
$psqlPath = "psql"
|
||||
if (-not (Get-Command $psqlPath -ErrorAction SilentlyContinue)) {
|
||||
# PostgreSQL kurulu değilse yaygın yolları dene
|
||||
$possiblePaths = @(
|
||||
"C:\Program Files\PostgreSQL\18\bin\psql.exe",
|
||||
"C:\Program Files\PostgreSQL\17\bin\psql.exe",
|
||||
"C:\Program Files\PostgreSQL\16\bin\psql.exe",
|
||||
"C:\Program Files\PostgreSQL\15\bin\psql.exe"
|
||||
)
|
||||
foreach ($path in $possiblePaths) {
|
||||
if (Test-Path $path) {
|
||||
$psqlPath = $path
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Veritabanı bağlantı kontrolü
|
||||
try {
|
||||
$test = & $psqlPath -h $DbHost -p $DbPort -U $DbUser -d $DbName -c "SELECT 1" 2>&1
|
||||
if ($LASTEXITCODE -ne 0) { throw "Baglanti hatasi" }
|
||||
} catch {
|
||||
Write-Host "X Veritabanina baglanilamadi!" -ForegroundColor Red
|
||||
Write-Host "Once SSM port forwarding baslat: dbconnect" -ForegroundColor Yellow
|
||||
Write-Host "PostgreSQL kurulu oldugundan emin ol" -ForegroundColor Yellow
|
||||
exit 1
|
||||
}
|
||||
|
||||
Write-Host "Veritabani ornekleri cekiliyor..." -ForegroundColor Cyan
|
||||
|
||||
$currentDate = Get-Date -Format "yyyy-MM-dd HH:mm"
|
||||
|
||||
# Helper function
|
||||
function Run-Query($query) {
|
||||
& $psqlPath -h $DbHost -p $DbPort -U $DbUser -d $DbName -t -c $query 2>$null
|
||||
}
|
||||
|
||||
# Build content as array of lines
|
||||
$lines = @()
|
||||
$lines += "# Database Sample Data"
|
||||
$lines += ""
|
||||
$lines += "Bu dosya AI asistanlarin veritabani yapisini anlamasi icin ornek veriler icerir."
|
||||
$lines += "**Son Guncelleme:** $currentDate"
|
||||
$lines += ""
|
||||
$lines += "> Bu dosya otomatik olusturulmustur. Elle duzenlemeyin."
|
||||
$lines += "> Script: ``scripts/export-db-samples.ps1``"
|
||||
$lines += ""
|
||||
$lines += "---"
|
||||
$lines += ""
|
||||
$lines += "## Tablo Istatistikleri"
|
||||
$lines += ""
|
||||
$lines += "| Tablo | Kayit Sayisi |"
|
||||
$lines += "|-------|--------------|"
|
||||
|
||||
# Tablo sayıları
|
||||
$tables = @("countries", "leagues", "teams", "players", "matches", "predictions", "odd_categories", "odd_selections", "match_team_stats", "live_matches", "users", "app_settings")
|
||||
foreach ($table in $tables) {
|
||||
$count = (Run-Query "SELECT COUNT(*) FROM $table;").Trim()
|
||||
if ($count) {
|
||||
$lines += "| $table | $count |"
|
||||
}
|
||||
}
|
||||
|
||||
$lines += ""
|
||||
$lines += "---"
|
||||
$lines += ""
|
||||
$lines += "## Matches (Son 5 Mac)"
|
||||
$lines += '```json'
|
||||
$matchesJson = Run-Query "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;"
|
||||
$lines += $matchesJson
|
||||
$lines += '```'
|
||||
$lines += ""
|
||||
|
||||
$lines += "## Leagues (Ilk 10)"
|
||||
$lines += '```json'
|
||||
$leaguesJson = Run-Query "SELECT json_agg(t) FROM (SELECT id, name, sport, country_id FROM leagues LIMIT 10) t;"
|
||||
$lines += $leaguesJson
|
||||
$lines += '```'
|
||||
$lines += ""
|
||||
|
||||
$lines += "## Teams (Ilk 10)"
|
||||
$lines += '```json'
|
||||
$teamsJson = Run-Query "SELECT json_agg(t) FROM (SELECT id, name, sport, logo_url FROM teams LIMIT 10) t;"
|
||||
$lines += $teamsJson
|
||||
$lines += '```'
|
||||
$lines += ""
|
||||
|
||||
$lines += "## Countries (Ilk 10)"
|
||||
$lines += '```json'
|
||||
$countriesJson = Run-Query "SELECT json_agg(t) FROM (SELECT id, name, flag_url FROM countries LIMIT 10) t;"
|
||||
$lines += $countriesJson
|
||||
$lines += '```'
|
||||
$lines += ""
|
||||
|
||||
$lines += "## Predictions (Son 5)"
|
||||
$lines += '```json'
|
||||
$predictionsJson = Run-Query "SELECT json_agg(t) FROM (SELECT match_id, created_at FROM predictions ORDER BY created_at DESC LIMIT 5) t;"
|
||||
$lines += $predictionsJson
|
||||
$lines += '```'
|
||||
$lines += ""
|
||||
|
||||
$lines += "## Match Team Stats (Ornek 5)"
|
||||
$lines += '```json'
|
||||
$statsJson = Run-Query "SELECT json_agg(t) FROM (SELECT match_id, team_id, possession_percentage, shots_on_target, shots_off_target FROM match_team_stats LIMIT 5) t;"
|
||||
$lines += $statsJson
|
||||
$lines += '```'
|
||||
$lines += ""
|
||||
|
||||
$lines += "## App Settings"
|
||||
$lines += '```json'
|
||||
$settingsJson = Run-Query "SELECT json_agg(t) FROM (SELECT key, value FROM app_settings) t;"
|
||||
$lines += $settingsJson
|
||||
$lines += '```'
|
||||
$lines += ""
|
||||
$lines += "---"
|
||||
$lines += ""
|
||||
$lines += "_Bu dosya scripts/export-db-samples.ps1 tarafindan olusturulmustur._"
|
||||
|
||||
# Dosyaya yaz
|
||||
$lines | Out-File -FilePath $OutputFile -Encoding utf8
|
||||
|
||||
Write-Host "Export tamamlandi: $OutputFile" -ForegroundColor Green
|
||||
Reference in New Issue
Block a user