Creating ER from Django Model
Bir hayli uzun zaman oldu yazmayalı.. Şimdi onca zaman birikmiş kocaman bir heyecan ile yazıyorum inanın.. İçimde biriken ve çoğu zaman dışa yansıtamadığım birikintiler var içimde zannediyorum.. Söze bu akşam rubailerini okuduğum Ömer Hayyam ile girmek istiyorum. Bu konu başlığı altında olur mu yahu Gaffar ? !! dediğinizi duyar gibiyim ama biliyorum ki çok farklı bi tarzım var.. 900 yıl evvel yazılana bakın da işimize bakalım.
Irmaklarından şaraplar akacak, diyorsun
Cennet-i alâ meyhane midir?
Her mümine iki huri, diyorsun
Cennet-i alâ kerhane midir?
Tanrı bize cennette vaat ettiği şarabı
Niçin haram etsin bu dünyada, akla sığar mı?
Bir sarhoş arap, devesini vurmuş Hamza’nın
Peygamber de yasak etmiş arap’a şarabı
Beni özene bezene yaratan kim? sen
Ne yapacağımı da yazmışsın önceden
Demek günah işleten de sensin bana
O zaman nedir o cennet cehennem?
devamını muhakkak okuyun.. Ömer Hayyam..
Evet şimdi gelelim konumuza. Öncelikle Python-Django ile proje yapıyor iseniz, muhtemelen acaba bir tool var mı bizim oluşturduğumuz modelden bize ER şemasını verecek? Normal koşullarda ER çizerek model oluşturma araçları çok var. Bizim yapacağımız ise reverse engineering olarak adlandırılabilir. Projenizi oluşturdunuz, modelinizi yazdınız şimdi sıra ER şemasını çıkarmakta mı? Buyrun burdan yakın o zaman :)
Bu yaptıklarım Ubuntu 9.04 Jaunty Jackalope-Python2.6-Django1.0 sürümü development environment üzerinde denenmiştir. Diğer sürümler için geçersizdir demiyorum. Hasılı çalışmazsa bunlardan biri olabilir problem demeye getiriyorum.
Öncelikle bi kaç paket kurmanız gerekmektedir.
sudo apt-get install graphviz-dev python-pygraphviz
Bu paketi kurduktan sonra sizin django projenizin settings.py dosyasında
INSTALLED_APPS = ( ... 'django_extensions', )
görüldüğü üzre django_extensions uygulamasını ekleyin. Dilerseniz ER şemasını aldıktan sonra tekrar çıkarabilirsiniz. Gerek yok orda durmasına işinizi gördükten sonra :)..
Şimdi ise bizim ER şemasını nasıl çıkaracağımıza bi bakalım. Yapmamız gereken tek şey bir komut..
Linux u seviyorum.. Kahretsin.. Fazlayım.. Fazla..

sudo python manage.py graph_models -a -g -o my_er_schema.png
komutu ile beraber projenizin settings.py dosyasının hemen yanında my_er_schema.png diye bir resim dosyası oluşacaktır. Eminim ki bu dosyayı gördüğünüzde şaşıracaksınız…
Benim küçük projelerimden biri olan bu ER şemasını sizinle paylaşayım.

Hadi bakalım, Kod a man olmayan, kod yazamaz :)
No related posts.
Related posts brought to you by Yet Another Related Posts Plugin.


Leave a Reply