WordPress Tablo Adlarını Değiştirmek
Azizce ‘yi geçen hafta WordPress altyapısına taşıdım. Eski Azizce ‘yi ise içeriğinden faydalanabilinmesi için açık tutuyorum. Taşınma esnasında ufak bir problem yaşadım. Daha önce test amaçlı kurduğum WordPress ‘in tabloları ile yeni Azizce ‘nin WordPress tabloları çakışacaktı.
Dolayısıyla aşağıda yazdığım küçük PHP script ‘i ile tabloları yeniden adlandırdım:
<?php // MySQLi Bağlantısı $db = new mysqli('localhost','kullanici_adi','sifre','veritabani_adi'); // Bağlantı Hata Kontrolü if (mysqli_connect_errno()) { echo 'Bağlantı Sağlanamıyor: ' . mysqli_connect_error(); } // Gerekli olmayabilir ama karakter setlerini // garanti altına alalım $db->query("SET NAMES 'utf8'"); $db->query("SET CHARACTER_SET 'utf8'"); // Veri tabanındaki tabloları çekme sorgusu // Eğer veritabanınızda sadece kurduğunuz // Wordpress 'in tabloları yoksa buradan sonra // $tablolar dizisini filtrelemeniz gerekir. // Tavsiye: eregi(), preg_match() $sorgu = "SHOW TABLES"; $sonuc = $db->query($sorgu); // Veri çekebildiysek... if($sonuc->num_rows > 0) { $tablolar = array(); // Gelen veriler tablo adları $tablo dizisine ekle while($satir = $sonuc->fetch_array(MYSQLI_BOTH)) { $tablolar[] .= $satir[0]; } // Belleği boşaltmak burada önemli değil ama elimiz alışsın ;) $sonuc->free(); // Başka sorgularımız da olacak bu değişkenleri silip yenilerine yer açalım unset($sorgu,$sonuc,$satir); } // Her tablo adı için bir MySQL sorgusu yapıp isimlerini değiştiriyoruz for($i=0; $i<count($tablolar); $i++) { $sorgu = "RENAME TABLE ".$tablolar[$i]." TO yeni_onek_" .$tablolar[$i].""; // Oldu mu ?? if(!$db->query($sorgu)) { echo $db->error ." :: " .$db->errno; } } // Bağlantıyı kapat $db->close; ?>
wp-config.php dosyasındaki $table_prefix değişkenini de güncelledikten sonra (yeni_onek_) siteyi açtım. Sitenin açılmasında bir problem olmadı. Bende yeni düzenlemeler için yönetim panelini açtım. Karşımda şu mesaj vardı:
You do not have sufficient permissions to access this page.
Bu sayfaya ulaşma izniniz yoktur.
Hayda!! Bir – 1,5 saat civarında oturup WordPress ‘in kodlarını inceledim. Acaba bir bug mı oluştu tablolarla oynayınca diye. WordPress kodlarını güzelce incelemekten öteye gidemeyen bu uğraştan sonra, sıkışanın yardımcısı, biricik arama motoru Google ‘da sadece “wordpress table prefix” yazmam yeterli oldu. Oyalanmamın sebebi aslında birazda Azizce ‘yi nereye kurduk, depreme dayanıklı mı acaba
şeklindeki düşüncelerimdi.
Colin Seymour ‘un olayı tam 1 sene evvel çözüp blogunda paylaştığını gördüm.
WordPress ‘te yaptığımız bazı ayarlamalarda, tablo isimleri veritabanına kaydediliyormuş. Dolayısıyla önceden tabloadi olan tablomuz şimdi yeni_onek_tabloadi olduğundan ötürü, veritabanında kayıtlı satırları da düzeltmek gerekmeyteymiş.
Peki bu düzeltmeler neymiş? :
${yeni_onek_}options tablosundaki:
- ${varsa_eski_onek_}user_roles seçeneği
ve
${yeni_onek_}usermeta tablosundaki:
- ${varsa_eski_onek_}capabilities seçeneği
- ${varsa_eski_onek_}user_level seçeneği
- ${varsa_eski_onek_}autosave_draft_ids seçeneği
kısımlarını bulup , ${varsa_eski_onek_} yerine ${yeni_onek_} yazmak. Yani yine eski tablo önekini yeni tablo önekiyle değiştirmek. Ancak tabi buradaki fark tablo satırlarını değiştirmenizde.
Benzer şekilde eski tablo öneklerinizi içeren satırlar varsa bunları bulup yenisiyle değiştirmeniz gerekmekte.
Umarım bu tiyo işinize yarar. Bu şekilde bir veritabanına bir çok kez rahatça WordPress kurabilirsiniz.
Yorumlar
Alihan Çetin demişki
31 Mayıs, 2008 @ 04:03
Aslında sadece ters durumlar için yazmadım bu yazıyı Mustafa. Bir kaç blog birden tutan var. “A, ben bu blogun tablolarını şu şekilde isimlendireyim” diyen de olabilir, kolaylık açısından
Rap demişki
17 Eylül, 2008 @ 03:10
illaki birileri arar lazım olur…
Alihan Çetin demişki
13 Ekim, 2008 @ 04:43
İnanmıyorum ya
Hastalık böyle birşey işte. Hahahahghgh öhö!
1 saat 42 dakikadır bir wordpress site taşımadan mütevellit
Bu sayfaya erişmek için yeterli izniniz yok
You do not have sufficient permissions to access this page.
sorununa çözüm arıyorum. Şurayı buldum. Düzelttim, sevindim birde adama teşekkür ettim 8]
O esnada bunu Azizce‘ye de yazayım insanların işine yarar dedim, demez olaydım
Zaten buradaymış. Kopmuş durumdayım. Hastalık böyle birşey işte, adama yazdırdığını bir daha, arattığını bir daha, düşündüğünü bir daha düşündürür
)
Satranç demişki
19 Ekim, 2008 @ 20:13
Çalışmaması için bir neden görmemekle birlikte, bu işlem wordpress mu da sorunsuz olarak çalışıyor mu?
Azizce.Com demişki
19 Ekim, 2008 @ 20:44
WordPress mu ‘nun tablo yapısını bilmiyorum , ancak gördüğünüz kod aslında standart bir mysql prosedürü. Tablo isimlerini değiştiriyoruz kısacası.
Siz uyarlarsanız neden çalışmasın?
İyi Çalışmalar,
Aziz
Yorum yazın
Additional comments powered by BackType



Mustafa ŞAPÇILI demişki
31 Mayıs, 2008 @ 03:54
Umarım ihtiyacımız olmaz