Temel Yönetim Komutları

Komut satırı yönetim aracı manage.py ile kullanıcı ekleme, veritabanı yedekleme, geliştirme sunucusu çalıştırma gibi birçok operasyon kolaylıkla yapılabilir.

-h or –help

Yardım mesajını gösteririr ve çıkış yapar.

usage

$ ./manage.py -h or $ ./manage.py -help

dump_data

Bütün modellere ait verileri standart çıktıya ya da belirtilen dosyaya yazar.

usage

$ ./manage.py dump_data [-h] [--timeit] --model [MODEL] [--path [PATH]]
                        [--type [{csv,json,json_tree,pretty}]]
                        [--batch_size [BATCH_SIZE]]

Zorunlu olan argüman:

  • model [MODEL] Dökümü alınacak modellerin isimleri yazılır. Bütün modellerin dökümü alınacaksa ‘all’ yazılır.

Zorunlu olmayan argümanlar:

  • -h,–help Yardım mesajını gösteririr ve çıkış yapar.

  • –timeit İşlemin süresini ölçer.

  • –path [PATH] Standart çıktı yerine, belirtilen dosyaya yazar.

  • –type [{csv,json,json_tree,pretty}]

    1. csv: csv varsayılan formattır. Her satıra bir tane kayıt yazar. csv, diğerlerinden daha hızlıdır ve belleği daha verimli kullanır çünkü JSON encoding/decoding işlemlerini yapmaz.
    2. json: Her bir kayıt için, ayrı bir json string içeren bir döküman yazar. Dökümandaki her satır bir kayda ait json stringidir. json-tree’nin aksine, bellek kullanımı kayıt başına artmaz.
    3. json_tree: Büyük veritabanlarında kullanmayın. Bütün dökümü tek bir JSON nesnesi olarak yazar.
    4. pretty: Büyük veritabanlarında kullanmayın. json_tree’nin formatlanmış versiyonu.

load_data

Belirtilen dosyadan verileri okur ve modelleri doldurur.

usage

$ ./manage.py load_data [-h] [--timeit] --path [PATH] [--update]
                        [--type [{csv,json,json_tree,pretty}]]
                        [--batch_size [BATCH_SIZE]]

Zorunlu olan argüman:

  • –path [PATH] Veri dosyası ya da fixture dizininin yoludur. Bir dizinden veri yükleyeceği zaman, .js ve .csv uzantılı dosyaları kullanır.

Zorunlu olmayan argümanlar:

  • -h,–help Yardım mesajını gösteririr ve çıkış yapar.

  • –timeit İşlemin süresini ölçer.

  • –update Varolan kayıtların üzerine yazar.Objenin varlığını kontrol etmeyecek bu yüzden daha hızlı çalışacak.

  • -batch_size [BATCH_SIZE] Solr’dan varsayılan miktardaki(1000) nesneleri tek seferde bulup getirir.

  • –type [{csv,json,json_tree,pretty}]

    1. csv: csv varsayılan formattır. dump_data ile elde edilmiş veya geçerli bir csv dosyası olabilir.
    2. json: dump_data ile elde edilmiş veya geçerli bir json dosyası olabilir.
    3. json_tree: dump_data ile elde edilmiş veya geçerli bir json_tree dosyası olabilir.
    4. pretty: dump_data ile elde edilmiş veya geçerli bir pretty json_tree dosyası olabilir.

load_fixture

Fixture’ları verilen json dosyasından ya da verilen dizindeki json dosyalarından yükler. Verileri, ulakbus_settings_fixtures isimli bucket içine, mevcut keylerin üzerine yazarak doldurur.

usage

$ ./manage.py load_fixture [-h] [--timeit] --path [PATH]

Zorunlu olan argüman:

  • –path [PATH] Fixture dosyasını ya da dizinini yükler.

Zorunlu olmayan argümanlar:

  • -h,–help Yardım mesajını gösterir.
  • –timeit İşlemin süresini ölçer.

migrate

Verilen model ya da modeller için yeni SOLR şemaları üretir veya mevcutları günceller.

usage

$ ./manage.py migrate [-h] [--timeit] --model [MODEL] [--threads [THREADS]]
                      [--force]

Zorunlu olan argüman:

  • model [MODEL] Dökümü alınacak model isimleridir. Bütün modellerin dökümü alınacaksa ‘all’ yazılır.

Zorunlu olmayan argümanlar:

  • -h,–help Yardım mesajını gösterir.
  • –timeit İşlemin süresini ölçer.
  • –threads [THREADS] Threadler’in maksimum sayısıdır.Varsayılan deger 1’dir.
  • –force Şema yaratımını zorunlu kılar.

flush_model

Modellere ait bucket’ların içeriğini siler.

usage

$ ./manage.py flush_model [-h] [--timeit] --model [MODEL]

Zorunlu olan argüman:

  • –model [MODEL] Silinecek olan model isimleridir. Bütün modelleri silmek için ‘all’ yazılmalıdır.

Zorunlu olmayan argümanlar:

  • -h,–help Yardım mesajını gösterir.
  • –timeit İşlemin süresini ölçer.

update_permissions

İzinleri veritabanı ile senkronize eder.

usage

$ ./manage.py update_permissions [-h] [--timeit] [--dry]

Zorunlu olmayan argümanlar:

  • -h,–help Yardım mesajını gösterir.
  • –timeit İşlemin süresini ölçer.
  • –dry Degişiklik yapmaz sadece listeler.

shell

IPython shell’ini çalıştırır. Bu shell projeye ait tüm modelleri yükler ve kullanıma hazır hale getirir. Çalışma kolaylığı sağlar.

usage

$ ./manage.py shell [-h] [--timeit] [--no_model]

Zorunlu olmayan argümanlar:

  • -h,–help Yardım mesajını gösterir.
  • –timeit İşlemin süresini ölçer.
  • –no_model Modelleri içe taşımaz(import).

runsever

Geliştirme sunucusunu çalıştırır.

usage

$ ./manage.py runserver [-h] [--timeit] [--addr [ADDR]] [--port [PORT]]

Zorunlu olmayan argümanlar:

  • -h,–help Yardım mesajını gösterir.
  • –timeit İşlemin süresini ölçer.
  • –addr [ADDR] Sunucunun dinleyeceği adres. Varsayılan 127.0.0.1’dir.
  • –port [PORT] Sunucunun dinleyeceği port. Varsayılan 9001’dir.

create_user

Yeni kullanıcı yaratır.

usage

$ ./manage.py create_user [-h] [--timeit] --username [USERNAME] --password
                          [PASSWORD] [--abstract_role [ABSTRACT_ROLE]]
                          [--super] [--permission_query [PERMISSION_QUERY]]

Zorunlu olan argümanlar:

  • –username [USERNAME] Kullanıcı adı
  • –password [PASSWORD] Şifre

Zorunlu olmayan argümanlar:

  • -h,–help Yardım mesajını gösterir.
  • –timeit İşlemin süresini ölçer.
  • [–abstract_role [ABSTRACT_ROLE]] AbstractRole
  • –super Süper kullanıcı
  • –permission_query [PERMISSION_QUERY] Bu sorgudan dönen izinler yenı eklenen kullanıcıya tanımlanır. Varsayılan: “code:crud* OR code:login* OR code:logout*”

generate_diagrams

Modellerden PlantUML diyagramları oluşturur.

usage

$ ./ manage.py generate_diagrams [-h] [--timeit] [--daemonize]
                                 [--model [MODEL]] [--path [PATH]]
                                 [--split [{no,app,model}]]

Zorunlu olmayan argümanlar:

  • -h,–help Yardım mesajını gösteririr ve çıkış yapar.

  • –timeit İşlemin süresini ölçer.

  • model [MODEL] Diyagramı çizilecek modellerin adı buraya yazılarak seçilir. Tüm diyagramları seçmek için ‘all’ girilebilir. Eğer bu seçenek verilmediyse tüm modeller için diyagram oluşturulur.

  • –path [PATH] Standart çıktı yerine, belirtilen dosyaya yazar. Eğer ‘split’ seçeneği ‘app’ veya ‘model’ seçilirse ‘path’ verilmesi zorunludur.

  • –split [{no,app,model}]

    1. no: Tüm modelleri tek bir diyagrama yerleştirir ve standart çıktıya ya da tek bir dosyaya yazar.
    2. app: Modelleri, Metaclasslarındaki ‘app’ alanına göre gruplayarak ayrı dosyalara yazar. Bu seçenek seçilirse ‘path’ seçeneğiyle bir dosya adı verilmelidir. Dosyaları ‘path’ seçeneğindeki isim ve ‘app’ isimleri ile kaydeder, örneğin ‘–path diagrams.puml’ seçildiyse dosyaları ‘diagrams.app.puml’ şeklinde kaydeder.
    3. model: Modellerin her birini ayrı dosyalara yazar. Bu seçenek seçilirse ‘path’ seçeneğiyle bir dosya adı verilmelidir. Dosyaları ‘path’ seçeneğindeki isim, ‘app’ isimleri ve model ismi ile kaydeder. Örneğin ‘–path diagrams.puml’ seçildiyse dosyaları ‘diagrams.app.model.puml’ şeklinde kaydeder.

Bu komut ile oluşturulan diyagramlar PlantUML’in çizim sınırlarını aşabilir. Oluşan diyagramların çizilirken yarım kalması durumunda PlantUML’e bir çevre değişkeni verilerek diyagramları çizmesi sağlanabilir:

$ env PLANTUML_LIMIT_SIZE=8192 plantuml my-diagram.puml

Veri Üreteçleri

Aşağıda sıralanan komutlar geliştirme esnasında fake(uydurma) veriler üretmek amacıyla eklenmiştir.

random_personel

Rastgele Personel üretir.

usage

$ ./manage.py random_personel [-h] [--timeit] --length [LENGTH]

Zorunlu olan argümanlar:

  • –length [LENGTH] Rastgele üretilecek personel sayısıdır.

Zorunlu olmayan argümanlar:

  • -h,–help Yardım mesajını gösterir.
  • –timeit İşlemin süresini ölçer.

random_harici_okutman

Rastgele Harici Okutman üretir.

usage

$ ./manage.py random_harici_okutman [-h] [--timeit] --length [LENGTH]

Zorunlu olan argüman:

  • –length [LENGTH] Rastgele üretilecek okutmanın sayısıdır.

Zorunlu olmayan argümanlar:

  • -h,–help Yardım mesajını gösterir.
  • –timeit İşlemin süresini ölçer.

random_ogrenci

Rastgele Ögrenci üretir.

usage

$ ./manage.py random_ogrenci [-h] [--timeit] --length [LENGTH]

Zorunlu olan argüman:

  • –length [LENGTH] Rastgele üretilecek öğrenci sayısıdır.

Zorunlu olmayan argümanlar:

  • -h,–help Yardım mesajını gösterir.
  • –timeit İşlemin süresini ölçer.

random_okutman

Personel veya HariciOkutman modellerinden rastgele Okutman üretir.

usage

$ ./manage.py random_okutman [-h] [--timeit] --length [LENGTH]

Zorunlu olan argüman:

  • –length [LENGTH] Rastgele üretilecek okutmanın sayıdır.

Zorunlu olmayan argümanlar:

  • -h,–help Yardım mesajını gösterir.
  • –timeit İşlemin süresini ölçer.