Category: Türkçe

Date:

Here, you can find a Python script I've written which lets you convert your csv files to MySQL-understandable SQL statements. The main feature is that this script detects the field types (INT, VARCHAR, DATE for now) according to the values belonging to each field and it generates both CREATE TABLE and INSERT INTO statements.

This script is useful when you cant import your OpenOffice Base database to MySQL. All you have to do is:

  1. Right click on your Base tables and click copy.
  2. Paste into a spreadsheet.
  3. Save it as a CSV file.
  4. Do the first 3 step for all tables
  5. Put all the CSV files under /home/user/tables directory.
  6. Run: python csvtomysql.py > output.sql

Script is licenced under GPLv2.

Sample input:

id; name
1; emre
2; john

Daha fazla kişiye ulaşması (biraz da hit yapması) açısından İngilizce yazdığım bu açıklamaları hemen Türkçeye çevirelim:
CSV dosyalarınızı MySQL veritabanınıza aktarmanızı kolaylaştıran Python betiğimi buradan indirebilirsiniz. Bu betiğin asıl özelliği CSV dosyasındaki verilerin türüne bakarak ait olduğu kolonun türünü (şimdilik INT, VARCHAR, DATE) belirliyor. Bu belirlemenin ardından CREATE TABLE ve INSERT INTO ifadelerini oluşturup size çıktı olarak sunuyor. Eğer OpenOffice Base üzerinde oluşturduğunuz veritabanını MySQLe aktarmak istemiş ancak başarısız olmuşsanız şu adımları takip edebilirsiniz:
  1. Base içerisinde istediğiniz tabloya sağ tıklayın ve Kopyalayı seçin.
  2. Boş bir Hesap Tablosu açın ve içine yapıştırın.
  3. CSV biçeminde Farklı Kaydedin.
  4. İstediğiniz tüm tablolar için yukarıdaki 3 adımı uygulayın.
  5. Tüm CSV dosyalarınızı /home/kullaniciniz/tables dizini altında toplayın.
  6. Betiğin bulunduğu konumda şu komudu çalıştırın: python csvtomysql.py > cikti.sql

Bu betik GPLv2 ile lisanslanmış olup okuldaki veritabanı dersinde verilen projeyi OpenOffice Basede yapıp bunu ne Accesse, ne de MySQLin anlayacağı bir SQL biçemine çevirmekte aciz kalan bir öğrenci tarafından yazılmıştır. Umarım birilerine faydası dokunur...

Örnek CSV dosyası:

id; name
1; emre
2; john

NOT: Sonradan öğrendim, http://www.csv2mysql.com/ diye bir site mevcutmuş, ancak ayraç olarak ; kullanıldığında sapıttığını belirtmek lazım.


Share: FacebookGoogle+Email


comments powered by Disqus