Yeni bir şirkete girmişssiniz… Elinizde güzel bir proje var yaklaşık olarak 1000 servise ve bu servis çalışanlarına hizmet veriyor.Fakat sizden önceki arkadaşlar birazcık garip bir kodlama yöntemleri kullanmışlar ve çok absürt bir veri tabanı yapısı kurmuşlar.Şu an çalıştığım şirkette karşılaşmış olduğum belirli hataları ve çözümlerini sizlerle paylaşacağım.İlk olarak latin olarak oluşturulmuş tablolarımızı nasıl veri kaybı olmadan utf-8’e çevirebileceğimiz konusunda.Unix türevimizin konsolunda şu adımları sırasıyla gerçekleştiriyoruz.Adım 1: Dump of Dump (MySQL Dump ile saf dataları alıyoruz)mysqldump –user=kul -p –default-character-set=latin1 -c –insert-ignore –skip-set-charset dbname > dump.sql
Adım 2: Make (Yeni Veri Tabanı Oluştur)mysql –user=user -p –execute=DROP DATABASE dbname;CREATE DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci;
Adım 3: From Dump To Clever (Eski datanın utf-8 e çevrilmesi)iconv -f ISO-8859-1 -t UTF-8 dump.sql > dump_utf8.sql
Adım 4: A little modifyperl -pi -w -e ‘s/CHARSET=latin1/CHARSET=utf8/g;’ dump_utf8.sql
diyerek SQL dosyamz içerisindeki create lerin popolarındaki latin yazılarını utf8 olarak değiştiriyoruz.Adım 5: Go Back Your Hole (Eski datamızı UTF-8 veri tabanımıza geri yüklüyoruz)mysql -ukul -p –max_allowed_packet=16M –default-character-set=utf8 dbname < dump_utf8.sql