Magento

Magento: Veritabanı Önekini Değiştirme

Merhaba arkadaşlar,

Bu yazıda hızlı bir şekilde Magento veritabanınızın önekini nasıl değiştireceğimizi göstereceğim.

Varsaylım ki veritabanı tablolarımızın önekini yanlış bir isim verdik ve bu da bizi rahatsız ediyor. Yani düşünsenize önekimizi google_ yapmamız gerekirken bizim kalkıp bing_ yapmamız ne kadar abes olurdu. Ama oldu, hatayla bing_ yaptık. Şimdi kalkıp 350 tane tabloyu tek tek değiştirecek miyiz yani?

Bu problemi iki basit adımda ortadan kaldırabiliriz.

Adım 1

Aşağıdaki scriptte veritabanı bilgilerinizi ve gerekli ayar kısımlarını güncelleyin ve çalıştırın:

$db_host = 'database_host';
$db_kullanici = 'root';
$db_sifre = '';
$db_adi = 'db_adi';
 
// AYARLAR
$hatali_onek = 'bing_';
$yeni_onek = 'google_';

// Burdan sonrasına karışmıyoruz
// MySQL Bağlantısı
$db_obj = mysql_connect($db_host,$db_user,$db_password);
    
// db_adi Tablomuzu bağlanıyor
mysql_select_db($db_name);  
    
// Bütün tabloları alıyoruz
$sql="SHOW TABLES"; 
$tablolar=mysql_query($sql) or die('Hata); 

while($tablo=mysql_fetch_array($tablolar))
{
  $eski_tablo=$tablo[0];
    
  $yeni_tablo = preg_replace('/'.$hatali_onek.'/', $yeni_onek, $eski_tablo, 1);
        
  // Tablo adını değiştirelim
  $yeniden_isimlendirme_sql="RENAME TABLE `".$eski_tablo."`  TO `".$yeni_tablo."`";
  mysql_query($yeniden_isimlendirme_sql);
}   
    
echo "İşlem tamamlanmıştır ;)";

Bu adımı tamamladığınızda veritabanındaki bütün tabloların öneki artık bing_ değil google_ olarak güncellenmiş oldu. Şimdi bir işlemimiz kaldı.

Adım 2

Şimdi veritabanı önekimizi değiştirdik ama Magento bunu bilmiyor. Çalıştırmaya çalıştınız sitenizi fakat bing_xxx tablosu bulunamadı şeklinde hata ile karşılaştınız. Çünkü Magento tablo önekini değiştirdiğinizi bilmiyor. Magento’ya bunu bildirmek için \app\etc\local.xml konumunda bulunan ayar dosyasını da güncellememiz gerekiyor.

Bu dosyayı açalım ve

<db>
    <table_prefix><![CDATA[bing_]]></table_prefix>
</db>

kısmını şöyle değiştirelim:

<db>
    <table_prefix><![CDATA[google_]]></table_prefix>
</db>

Bu güncellemeden sonra sitemize girmeye kalktık fakat giremedik mi? Bu Magento’nun güçlü önbelleklemesinden kaynaklanıyor. Tam geçerli bir cache temizliği için \var\cache, \var\lock ve \var\sessions klasörlerimizin için güzelce temizleyelim. Silelim.

Yorum olarak sorularınızı sormaktan çekinmeyin arkadaşlar, görüşmek dileğiyle,

Post Author: Oral ÜNAL

Web geliştirmeyi başta meslek olarak hayal eden fakat daha sonra bir hobi haline getiren birisiyim işte.

Yorum yazma sırası sizde!