12 Ekim 2007, 00:37 tarihinde yazılmış olup, 538 kez okunmuş ve 11 yorum almış
Etiketler: WordPress
Dün gece sitemi wordpress 2.3 sürümüne yükselttim ve işlem esnasında bazı notlar tuttum. Wordpress 2.3 önceki sürümlerden bağımsız ve yenilikçi bir kategori yapısı kullanmasından ötürü birçok günlükçü bu yeni sürüme geçmeyi düşünmüyor. Bu nedenle notlarımı paylaşmaya karar verdim.
Wordpress 2.3 sürümüne geçmeden önce birkaç kontrol işlemini gerçekleştirmeniz gerekiyor.
Özellikle yazı ve bağlantı kategorileri tablolarını kullanan eklentiler bu yeni sürüm üzerinde çalışmayacaktır. Çünkü bu tablolar (post2cat, link2cat, categories) birleştirilerek tek bir tabloda toplandı. Bu nedenle yerel sunucunuza wordpress 2.3 kurup, kullanmakta olduğunuz tüm eklentileri bu alanda test etmeniz gerekiyor.
Eklenti kontrolü esnasında bunların hangilerine gerçekten ihtiyaç duyduğunuzu da tekrardan gözden geçirebilirsiniz. Gerekmeyen eklentileri kaldırmak, wordpress performansı için çok önemli.
Yeni wordpress sürümleri ile gelen bir diğer güzel özellik ise her bir temanın kendisine ait bir fonksiyon (functions.php) dosyasının olabilmesi. Böylece temanız da, aynı eklentiler gibi wordpress üzerinde işlem gerçekleştirebiliyor. Bu nedenle temanız içerisinde tanımlı olan fonksiyonlar wp 2.3 sürümünde çalışmayabilir. Bunu yine yerel sunucunuzda uygulayacağınız test ile görebilirsiniz.
Eğer temanız wp 2.3 üstünde çalışmazsa, size 4 açık kapı kalıyor;
Eğer 1 ve 2. adımda bir problem yaşamayıp sitenizi güncellemeye karar verdiyseniz, ziyaretçilerinizin siteye erişimini engellemek en güzelidir. Örneğin güncelleme işlemi boyunca onlara Güncelleniyoruz v.b. tarzında bir karşılama mesajı sunabilirsiniz.
Güncelleme kritik bir iştir ve şakaya gelmez
Ne olur ne olmaz, sitenize ait tüm veritabanının bir yedeğini alın.
Tüm ön testlerimizi bitirdik ve en azından karşılaşacağımız birçok problemi yerel sunucumuz üzerinde çözdük. Siteyi de ziyaretlere kapattık ve güncellemeye geçeceğiz. İşte adımlarımız
Sitenizin FTP dizinine bağlanın ve buradaki tüm dosyaları silin. Ancak öncesinde eklenti, tema v.b. gibi dosyalarınızın bir yedeğini alın ya da bunları silmeyin. Ve unutmadan, eğer wordpress üzerinden resim yüklüyorsanız, resimlerinizi yüklediğiniz dizini de silmeyin. Neyse genel olarak anladığınızı umuyorum
Eski wordpress sürümüne ait ve içerisinde bize ait dosyaların olmadığı tüm klasörleri silin gitsin.
Daha sonra wordpress 2.3 sürümünün paketini indirin ve sıkıştırılmış klasör içerisinden çıkan dosya ve klasörleri sitenizin FTP dizinine yükleyin.
Yükseltme işlemi yaptığımız için yeni bir veritabanı yükleme ihtiyacı duymuyoruz ve bu nedenle önceki sürümdeki ayarlarınız ile devam edeceksiniz. Eğer hali hazırda bir wp-config.php dosyası varsa onu kullanacağız. Yoksa wp-config-sample.php dosyasını wp-config.php olarak yeniden adlandıracağız. Sonrasında ise bu dosya içerisindeki mevcut ayarları tekrar tanımlamamız gerekiyor.
Günlüğümüzü Türkçe arayüz ile kullanmak istiyorsak Wordpress-Tr ekibi tarafından hazırlanan Türkçe dil dosyasını buradan indirmemiz gerekiyor. İndirmiş olduğumuz bu dosyayı da sitemize yüklüyor ve wp-config.php içerisine gerekli tanımlamaları yapıyoruz. (bkz)
sitenizinadi/wp-admin/upgrade.php adresini görüntüleyip, tüm adımları sırasıyla gerçekleştirerek mevcut veritabanınızın da yapısını wordpress 2.3 sürümüne yükseltebilirsiniz. Bu işlem sonrasında önceki sürümlerde yer alan yazı ve bağlantı kategorileri tabloları silinerek yeni Taxonomy tabloları oluşturulacaktır.
Bu işlemin ardından phpMyAdmin ile veritabanınıza bağlanarak silmiş olduğunuz eklentilere ait tabloları kaldırabilir ve ardından tüm tabloları onarabilirsiniz. Eğer varsa, tüm ek yükler temizlenecektir.
Kullanmış olduğunuz etiket eklentisinde yer alan tüm etiketleri, wordpress 2.3 üzerindeki yeni etiket sistemine aktarabilirsiniz. Bunun için Yönet=>İçe Aktar yolunu izlemeli ve kullanmış olduğunuz eklentiyi seçerek aktarma işlemine geçmelisiniz.
Bu bölüm için fazla birşey yazamayacağım. Aktarma yöneticisinde sadece Simple Tagging 1.6.2 tanımlı olmasına karşın kullanmış olduğum daha eski Simple Tagging sürümünden tüm etiketlerimi başarılı bir şekilde aktarabildim.
Sitemizi güncelledik ancak işimiz bitmedi. İlla gözümüzden kaçan noktalar olabilir. Bu nedenle olabildiğince test etmeli ve problem aramalayız
Hatta güncelleme sonrasında ziyaretçilerinize bu durumu bir yazı ile bildirmeli ve tespit edecekleri hataları bildirmelerini rica da edebilirsiniz. Kendi güncellemem sonrasında şu ana kadar 3 adet farklı hatayı ziyaretçilerin bildirmeleri ile gördüm ve düzelttim;)
Üstteki adımlara uymadan ya da mevcut eklentilerinizi test etmeden yapılan bir güncelleme sonrasında aşağıdaki hataların benzerlerini görmeniz olası
[Table 'crnonet.wp_post2cat' doesn't exist] SELECT p2c.category_id AS cat_id, COUNT(p2c.rel_id) AS numposts, UNIX_TIMESTAMP(max(p.post_date_gmt)) + '2' AS last_post_date, UNIX_TIMESTAMP(max(p.post_date_gmt)) AS last_post_date_gmt FROM wp_post2cat p2c INNER JOIN wp_posts p ON p2c.post_id=p.id WHERE (p.post_status='publish' OR p.post_status='static') AND p.post_date_gmt<='2007-09-30 19:06:57' GROUP BY p2c.category_id ORDER BY numposts DESC
[Table 'yeditepe_fsm.wp_categories' doesn't exist] SELECT COUNT(*) FROM wp_categories
WordPress database error: [Table 'cynthiaknouft1.wp_post2cat' doesn't exist] SELECT c.cat_name FROM wp_post2cat p2c INNER JOIN wp_categories c ON p2c.category_id = c.cat_id WHERE p2c.post_id = 436
[Table 'hyper.post2cat' doesn't exist] SELECT SQL_CALC_FOUND_ROWS DISTINCT posts.*, ss21.sayac_toplam, ss21.sayac_bugun, ss21.anlik_en_fazla_kisi, ss21.son_okuma, sticky.sticky_status FROM posts LEFT JOIN post2cat ON (posts.ID = post2cat.post_id) LEFT JOIN catt_visibility ON (post2cat.category_id = catt_visibility.catt_ID) LEFT JOIN sayfa_sayac_21 ss21 ON posts.ID = ss21.post LEFT JOIN sticky ON sticky.sticky_post_id = posts.ID WHERE 1=1 AND post_type = 'post' AND (post_status = 'publish' OR post_status = 'private') AND ((catt_visibility.front='1' AND catt_visibility.cv_user_level<='10') OR post_type='page' OR catt_visibility.catt_ID IS NULL) ORDER BY (sticky.sticky_status = 2 AND sticky.sticky_status IS NOT NULL) DESC, DATE_FORMAT(posts.post_date,'%Y-%m-%d') DESC, (sticky.sticky_status = 1 AND sticky.sticky_status IS NULL) DESC, DATE_FORMAT(posts.post_date,'%T') DESC LIMIT 0, 8
WordPress database error: [Table 'wordpress.wp_post2cat' doesn't exist] SELECT c.cat_name FROM wp_post2cat p2c INNER JOIN wp_categories c ON p2c.category_id = c.cat_id WHERE p2c.post_id = 218
Tüm bu hata kodları Eklenti Kontrolü başlığında anlattığım nedenden ötürüdür. Bu hata kodları,
başlıklarından derlenmiştir.