ANA SUNUCU

Birleştirme / Test Sunucusu

SYNC Sistemi

Adım Adım Rehber

Bu Sunucu Ne Yapacak?

Kaynak sunuculardan gelen değişiklikleri analiz edip birleştireceksin. Her kaynak sunucu için aynı süreç tekrarlanacak.

Mevcut durumu yedekle Raporu analiz et Dosyaları birleştir Test et

KRİTİK Güvenlik Kuralları

❌ ASLA YAPMA

  • storage/ klasörlerine DOKUNMA
  • .env dosyasını değiştirme
  • Migration otomatik çalıştırma
  • Onaysız dosya silme
  • vendor/ veya node_modules/ değiştirme

✅ HER ZAMAN YAP

  • Her adımda git checkpoint
  • Rollback hash'i kaydet
  • Çakışma varsa ÖNCE kullanıcıya sor
  • Her dosyayı yedekle sonra yaz
  • Test planı oluştur ve uygula

1 Mevcut Durumu Yedekle

Herhangi bir değişiklik yapmadan önce mevcut durumu kaydet:

Bash
# Mevcut durumu kontrol et git status git log --oneline -5 # Tüm değişiklikleri kaydet git add -A git commit -m "🔒 CHECKPOINT: Before merge from [KAYNAK] - $(date +%Y-%m-%d_%H-%M)" # ROLLBACK HASH - ÖNEMLİ! git rev-parse HEAD

ROLLBACK HASH'i KAYDET! Bir şey ters giderse bu hash'e döneceğiz.

2 SYNC Raporunu Analiz Et

Kullanıcı kaynak sunucudan SYNC raporu iletecek. Bu raporu analiz et:

🟢 GÜVENLİ

Direkt alınabilir

  • • Yeni dosyalar
  • • Tema dosyaları
  • • View dosyaları

🟡 DİKKATLİ

İnceleme gerekli

  • • Her iki tarafta değişmiş
  • • Model dosyaları
  • • Controller dosyaları

🔴 TEHLİKELİ

Özel onay gerekli

  • • Config dosyaları
  • • Route dosyaları
  • • Provider dosyaları

📋 Her dosya için kontrol et:

  • 1. Bu sunucuda bu dosya var mı?
  • 2. Varsa içeriği farklı mı?
  • 3. Bu sunucuda da değişiklik yapılmış mı?
  • 4. Çakışma riski var mı?

3 Dosya Aktarımı

Kullanıcıdan dosyaları iste ve sistemli şekilde aktar:

3.1 Dosyaları İste

Kullanıcıya şunu söyle:

Lütfen kaynak sunucudan şu dosyaları alıp bana iletin:

1. path/to/file1.php
2. path/to/file2.php
...

Her dosyanın içeriğini bu chat'e yapıştırın.

3.2 Her Dosya İçin (Sırayla)

Bash
# 1. Mevcut dosyayı yedekle (varsa) cp path/to/file.php path/to/file.php.backup.$(date +%Y%m%d) # 2. Yeni içeriği yaz (Write tool ile) # 3. İzinleri düzelt sudo chown [user]:[group] path/to/file.php sudo chmod 644 path/to/file.php

3.3 Batch Checkpoint

Her 5-10 dosyadan sonra checkpoint:

git add -A git commit -m "🔄 MERGE: Files from [KAYNAK] - Batch X"

4 Migration Kontrolü

Kaynak sunucudaki migration'ları bu sunucuyla karşılaştır:

Bash
# Bu sunucudaki migration durumu php artisan migrate:status # Migration dosyalarını listele ls -la database/migrations/ | tail -20 ls -la Modules/*/database/migrations/tenant/ 2>/dev/null

MİGRATION ÇALIŞTIRMA! Sadece talimat ver, kullanıcı çalıştırsın.

📋 Kullanıcıya talimat ver:

Bu sunucuda eksik migration'lar var:

📦 CENTRAL Migration'lar:
   php artisan migrate --force

📦 TENANT Migration'lar:
   php artisan tenants:migrate --force

⚠️ ÖNCELİKLE test ortamında deneyin!
⚠️ Veritabanı yedeği alın!

5 Test Planı Oluştur

Değişen modüllere göre test listesi oluştur:

Auth Modülü Değiştiyse

  • ☐ Giriş yap (admin + normal user)
  • ☐ Çıkış yap
  • ☐ Şifre sıfırlama
  • ☐ Kayıt ol (varsa)
  • ☐ Session persistence

Blog Modülü Değiştiyse

  • ☐ Blog listesi
  • ☐ Blog detay sayfası
  • ☐ Kategori filtreleme
  • ☐ SEO meta tags
  • ☐ Görseller yükleniyor mu

Service Modülü Değiştiyse

  • ☐ Servis listesi
  • ☐ Servis detay
  • ☐ İletişim formu
  • ☐ Alt servisler (varsa)

Tema Değiştiyse

  • ☐ Anasayfa görünüm
  • ☐ Header/Footer
  • ☐ Mobile responsive
  • ☐ Dark mode (varsa)
  • ☐ Tüm sayfalar açılıyor mu

Config Değiştiyse

  • ☐ Cache temizle
  • ☐ Config cache rebuild
  • ☐ Route cache rebuild
  • ☐ Site erişilebilir mi (200 OK)

Route Değiştiyse

  • ☐ Yeni route'lar çalışıyor mu
  • ☐ Eski route'lar bozulmadı mı
  • ☐ 404 hatası yok
  • ☐ Middleware'ler çalışıyor
Cache Temizleme
php artisan cache:clear && php artisan config:clear && \ php artisan route:clear && php artisan view:clear && \ php artisan responsecache:clear

6 Sonuç Raporu

Birleştirme tamamlandığında bu formatı kullan:

Sonuç Raporu
═══════════════════════════════════════════════════════
✅ MERGE TAMAMLANDI
[KAYNAK] → [HEDEF]
═══════════════════════════════════════════════════════

📅 Tarih: [tarih]
🔑 Kaynak Commit: [hash]
🔒 Rollback Hash: [hash]

─────────────────────────────────────────────────────
📁 AKTARILAN DOSYALAR
─────────────────────────────────────────────────────

✅ path/to/file1.php
✅ path/to/file2.php
⚠️ path/to/risky.php (manuel kontrol gerekli)

─────────────────────────────────────────────────────
🗄️ BEKLEYEN MİGRATIONLAR
─────────────────────────────────────────────────────

[ ] Central: php artisan migrate --force
[ ] Tenant: php artisan tenants:migrate --force

─────────────────────────────────────────────────────
🧪 TEST SONUÇLARI
─────────────────────────────────────────────────────

✅ Auth: Giriş/Çıkış çalışıyor
✅ Blog: Listeleme çalışıyor
✅ Tema: Anasayfa görünüyor
⚠️ [Varsa sorun belirt]

─────────────────────────────────────────────────────
🔙 ROLLBACK TALİMATI
─────────────────────────────────────────────────────

Sorun olursa:
git checkout [rollback_hash] -- .
git checkout HEAD -- storage/
php artisan cache:clear

═══════════════════════════════════════════════════════

7 Sonraki Kaynak Sunucu

Bu kaynak tamamlandıysa, sıradaki için hazırlan:

[KAYNAK] birleştirmesi tamamlandı. ✅

Sıradaki kaynak sunucu var mı?
Varsa yeni SYNC RAPORU'nu iletin.

Aynı süreci tekrarlayacağız:
1. Checkpoint oluştur
2. Raporu analiz et
3. Dosyaları aktar
4. Migration kontrol
5. Test et
6. Sonuç raporu

ACİL ROLLBACK

Bir şey ters giderse:

1. Son checkpoint'e dön

git checkout [rollback_hash] -- .

2. Storage'ı KORUMA ALTINA AL

git checkout HEAD -- storage/

3. Cache temizle

php artisan cache:clear && php artisan config:clear && php artisan route:clear && php artisan view:clear

4. Siteyi test et

curl -I https://[site]/ | head -1

200 OK almalısın

Kaynak Sunucu ile İletişim

Kaynak sunucudaki AI'a soru sorabilirsin. Örnekler:

Sen: "config/app.php'nin tam diff'ini alabilir misin?"

Sen: "Bu migration hangi tabloyu etkiliyor, down() metodu var mı?"

Sen: "routes/web.php'de hangi satırlar değişti?"

Bu soruları kullanıcıya ver, o kaynak sunucuya iletecek.