📋 Data Migration

Muzibu Data Migration

Eski muzibu.com verilerini yeni muzibu.com sistemine import etme

08 Ocak 2026

📝 Basit Anlatım (Herkes İçin)

Eski Muzibu sistemindeki tüm müzik verilerini (sanatçılar, albümler, türler, radyolar, sektörler) yeni sisteme taşıyoruz. Eski sistem Türkçe başlıklar kullanıyordu, yeni sistem ise çoklu dil desteği sunuyor (JSON formatında). Bu rapor, hangi verilerin nasıl dönüştürüleceğini ve import script'inin nasıl çalıştırılacağını açıklıyor.

Neden Önemli?

🔧 Teknik Detaylar (Geliştiriciler İçin)

Kaynak ve Hedef:

Import Edilen Tablolar:

1. Artists

43 kayıt

2. Genres

39 kayıt

3. Sectors

18 kayıt

4. Radios

99 kayıt

5. Albums

179 kayıt (artist_id mapping gerekli)

📊 Tablo Yapısı Farkları

Artists

❌ Eski Yapı:

  • id
  • title_tr VARCHAR
  • slug VARCHAR
  • bio_tr TEXT
  • thumb VARCHAR
  • created DATETIME
  • active TINYINT
  • meta_title, meta_keywords, meta_description

✅ Yeni Yapı:

  • artist_id (primary key)
  • title JSON (çoklu dil)
  • slug JSON
  • bio JSON
  • media_id INT (Spatie Media)
  • created_at, updated_at TIMESTAMP
  • is_active BOOLEAN
  • HasSeo trait (meta_ field'ları yok)

Albums

❌ Eski Yapı:

  • id
  • artist_id
  • title_tr, slug, description_tr
  • thumb
  • created, active
  • meta_*

✅ Yeni Yapı:

  • album_id
  • artist_id (mapping gerekli!)
  • title, slug, description JSON
  • media_id NULL
  • created_at, updated_at, is_active
  • HasSeo trait

Genres

Aynı mantık: title_tr → title (JSON), description_tr → description (JSON)

Radios

title_tr → title (JSON), slug → slug (JSON)

Sectors

title_tr → title (JSON), description yok eskide (NULL)

🔄 Dönüşüm Kuralları

1. Basit Field Dönüşümleri:

  • title_tr{"tr": "...", "en": ""}
  • slug{"tr": "...", "en": ""}
  • description_tr / bio_tr{"tr": "...", "en": ""}

2. Medya Dönüşümü:

thumbmedia_id = NULL (Spatie Media sonra manuel yüklenecek)

3. Boolean Dönüşüm:

active (TINYINT) → is_active (BOOLEAN)

4. Tarih Dönüşümü:

createdcreated_at + updated_at

5. Meta Field Kaldırma:

meta_title, meta_keywords, meta_description → Kaldırıldı (HasSeo trait kullanılıyor)

🚀 Import Script Kullanımı

Script Konumu:

/var/www/vhosts/muzibu.com/httpdocs/public/import-muzibu-data.php

Çalıştırma:

curl -s https://muzibu.com/import-muzibu-data.php

Çıktı:

⚠️ Dikkat:

🔜 Sonraki Adımlar

İlk 5 tablo import edildikten sonra, kalan tablolar için yeni script'ler hazırlanacak:

  1. Songs: album_id ve genre_id mapping gerekli, şarkı dosyaları kopyalanacak
  2. Playlists: sector_id ve radio_id mapping gerekli
  3. Favorites: Polymorphic dönüşüm (song_id → favoritable_type + favoritable_id)
  4. Song_plays: song_id mapping gerekli
  5. Pivot Tables: Polymorphic playlistables tablosuna dönüştürülecek

⚠️ Songs tablosu SQL dosyasında yok! Ayrı bir SQL export gerekiyor.