Management příkazy

Dokumentace všech Django management příkazů v aplikaci.

Spuštění v Docker kontejneru

Pokud aplikace běží v kontejneru, je možné buď nejprve spustit terminál v kontejneru a následně zadat příkaz, případně spustit příkaz přímo bez otevření interaktivního shellu.

Bez swarm módu (vývoj):

Tento postup se využívá pro vývojové prostředí, proto se příkazy spouští s vývojovým nastavením --settings=webclient.settings.dev.

  1. Zjistěte ID běžícího kontejneru:

    docker ps
    
  2. Spusťte shell v kontejneru (například s ID fdd99a0b6c90):

    docker exec -it aiscr-webamcr-web /bin/sh
    
  3. Poté spusťte požadovaný příkaz:

    python manage.py <název_příkazu> [parametry] --settings=webclient.settings.dev
    

Alternativně je možné vše zapsat do jednoho příkazu (bez otevření interaktivního shellu):

docker exec -it $(docker ps -q -f name=aiscr-webamcr-web) python manage.py <název_příkazu> [parametry] --settings=webclient.settings.dev

Se swarm módem (produkce):

Swarm mód se používá pro produkční nasazení, proto se příkazy spouští s produkčním nastavením --settings=webclient.settings.production.

  1. Zjistěte ID běžícího kontejneru:

    sudo docker ps
    
  2. Spusťte shell v kontejneru:

    sudo docker exec -it <ID_kontejneru> /bin/sh
    
  3. Poté spusťte požadovaný příkaz:

    python3 manage.py <název_příkazu> [parametry] --settings=webclient.settings.production
    

Alternativně je možné vše zapsat do jednoho příkazu (bez otevření interaktivního shellu):

docker exec -it $(sudo docker ps -q -f name=swarm_webamcr_web) python3 manage.py <název_příkazu> [parametry] --settings=webclient.settings.production

check_pian_properties

class core.management.commands.check_pian_properties.Command(stdout=None, stderr=None, no_color=False, force_color=False)

Django management příkaz pro kontrolu a opravu vlastností PIANů.

Tento příkaz kontroluje a případně opravuje:

  • Typ geometrie (typ) - musí odpovídat skutečnému typu geometrie (bod/linie/plocha)

  • Základní mapy ZM10 a ZM50 - určí se podle pozice geometrie

Pro každý PIAN:

  • Ověří, zda typ geometrie odpovídá skutečnosti

  • Vypočítá reprezentativní bod geometrie (střed u linie, centroid u plochy)

  • Určí příslušnost k základním mapám ZM10 a ZM50

  • Pokud se některá hodnota liší, provede aktualizaci

Poznámka: - Aktualizace jsou prováděny včetně Fedora transakcí a metadat - Proces může trvat delší dobu v závislosti na počtu PIANů

Příklady použití:

python manage.py check_pian_properties

help = 'core.management.commands.check_pian_properties.Command.help'
handle(*args, **options)

Zpracuje argumenty příkazu a zkontroluje konzistenci vlastností PIAN.

Parametry:
  • args – Parametr args slouží jako vstup pro logiku funkce handle.

  • options – Parametr options slouží jako vstup pro logiku funkce handle.

generate_metadata

class core.management.commands.generate_metadata.Command(stdout=None, stderr=None, no_color=False, force_color=False)

Django management příkaz pro generování a ukládání XML metadat.

Tento příkaz zpracovává záznamy z databáze a pro každý záznam vygeneruje XML metadata podle AMČR schématu. Vygenerovaná metadata jsou následně uložena do Fedora repozitáře prostřednictvím metody save_metadata.

Parametry: - –model: Název třídy modelu (např. Projekt, ArcheologickyZaznam). Pokud není zadán, zpracují se všechny dostupné modely - –limit: Maximální počet záznamů ke zpracování - –start-with-pk: Primární klíč, od kterého začít zpracování

Příklady použití:

python manage.py generate_metadata python manage.py generate_metadata –model Projekt –limit 100 python manage.py generate_metadata –model Adb –start-with-pk 1000 –limit 50

help = 'core.management.commands.generate_metadata.Command.help'
add_arguments(parser)

Provádí operaci add arguments.

Parametry:

parser – Parametr parser pracuje se s atributy add_argument.

handle(*args, **options)

Zpracuje hodnotu. v aplikaci.

Parametry:
  • args – Parametr args slouží jako vstup pro logiku funkce handle.

  • options – Parametr options pracuje se s atributy get.

Parametry:

Název

Typ

Výchozí hodnota

Popis

--model

str

None

core.management.commands.generate_metadata.Command.add_arguments.model_help

--limit

int

None

core.management.commands.generate_metadata.Command.add_arguments.limit_help

--start-with-pk

int

None

core.management.commands.generate_metadata.Command.add_arguments.start_with_pk_help

generate_thumbs

class core.management.commands.generate_thumbs.Command(stdout=None, stderr=None, no_color=False, force_color=False)

Django management příkaz pro generování náhledů souborů.

Tento příkaz zpracuje dávku souborů a pro každý soubor zkontroluje, zda existují náhledy v Fedora repozitáři. Pokud náhledy neexistují, vygeneruje je ze zdrojového souboru.

Parametry (vzájemně se vylučují): - –pks: Seznam primárních klíčů souborů (odděleno mezerami) - –range: Rozsah primárních klíčů ve formátu „start end“ - –csv: Cesta k CSV souboru s listem cest v sloupci „record“ (repository path)

Poznámka: - Musí být zadán právě jeden z parametrů –pks, –range, nebo –csv - Náhledy jsou generovány pouze pro obrazové formáty podporované systémem

Příklady použití:

python manage.py generate_thumbs –pks 1 2 3 python manage.py generate_thumbs –range 100 200 python manage.py generate_thumbs –range 1 1000 python manage.py generate_thumbs –csv /tmp/missing_thumbs.csv

help = 'core.management.commands.generate_thumbs.Command.help'
add_arguments(parser)

Provádí operaci add arguments.

Parametry:

parser – Parametr parser pracuje se s atributy add_argument.

handle(*args, **options)

Zpracuje vstupní argumenty příkazu a spustí generování náhledů.

Parametry:
  • args – Parametr args slouží jako vstup pro logiku funkce handle.

  • options

    Parametr options pracuje se s atributy get.

    raises CommandError:

    Vyvolá se při splnění podmínky provided_options != 1.

Parametry:

Název

Typ

Výchozí hodnota

Popis

--pks

int

core.management.commands.generate_thumbs.Command.add_arguments.pks_help

--range

int

core.management.commands.generate_thumbs.Command.add_arguments.range_help

--csv

str

core.management.commands.generate_thumbs.Command.add_arguments.csv_help

import_permissions

class core.management.commands.import_permissions.Command(stdout=None, stderr=None, no_color=False, force_color=False)

Django management příkaz pro import uživatelských oprávnění z CSV souboru.

Tento příkaz načte CSV soubor core/resources/uzivatelska_prava.csv a importuje uživatelská oprávnění do databáze pomocí PermissionService.

CSV soubor obsahuje definice uživatelských práv a jejich přiřazení. Při importu se kontroluje správnost formátu a hodnot.

Poznámka: - CSV soubor musí být umístěn v adresáři core/resources/ - Při chybě ve formátu CSV se import přeruší a zobrazí se chybová hláška - Úspěšný import zobrazí počet importovaných oprávnění a případné chybějící hodnoty

Příklady použití:

python manage.py import_permissions

help = 'core.management.commands.import_permissions.Command.help'
handle(*args, **options)

Zpracuje hodnotu. v aplikaci.

Parametry:
  • args – Parametr args slouží jako vstup pro logiku funkce handle.

  • options – Parametr options slouží jako vstup pro logiku funkce handle.

remove_gps_data

class core.management.commands.remove_gps_data.Command(stdout=None, stderr=None, no_color=False, force_color=False)

Django management příkaz pro odstranění GPS dat z existujících souborů.

Tento příkaz načte CSV soubor obsahující seznam souborů (cesty v Fedora repozitáři) a pro každý záznam odstraní GPS metadata z obrázků (EXIF data). Po odstranění GPS dat je soubor aktualizován v Fedora repozitáři.

CSV soubor musí obsahovat sloupec „record“ s cestami k souborům.

Argumenty: - csv_file: Cesta k CSV souboru se seznamem souborů

Formát CSV souboru:

record /path/to/image1.jpg /path/to/image2.jpg /path/to/image3.jpg

Poznámka: - Pouze soubory, které mají GPS data, budou aktualizovány - Pro každou aktualizaci se zaznamená nová verze souboru

Příklady použití:

Hostitelský adresář /home/migrace je v Docker YAML namapovaný na /vol/data-migrace, proto se uvnitř kontejneru používá cesta /vol/data-migrace:

python manage.py remove_gps_data /vol/data-migrace/files_with_gps.csv python manage.py remove_gps_data /vol/data-migrace/images.csv

help = 'core.management.commands.remove_gps_data.Command.help'
add_arguments(parser)

Provádí operaci add arguments.

Parametry:

parser – Parametr parser pracuje se s atributy add_argument.

handle(*args, **options)

Zpracuje hodnotu. v aplikaci.

Parametry:
  • args – Parametr args slouží jako vstup pro logiku funkce handle.

  • options – Parametr options slouží jako vstup pro logiku funkce handle.

Parametry:

Název

Typ

Výchozí hodnota

Popis

csv_file

str

core.management.commands.remove_gps_data.Command.add_arguments.csv_file_help

save_files_from_storage

class core.management.commands.save_files_from_storage.Command(stdout=None, stderr=None, no_color=False, force_color=False)

Django management příkaz pro uložení více souborů ze storage.

Tento příkaz zpracuje dávku souborů z lokálního úložiště. Pro každý soubor provede kontroly (MIME type, antivirus) a uloží jej do Fedora repozitáře včetně aktualizace metadat v databázi.

Argumenty: - storage_path: Cesta k adresáři obsahujícímu soubory (každý soubor musí mít název rovný PK záznamu v DB včetně přípony, např. 123.jpg)

Parametry: - –pks: Seznam primárních klíčů souborů (odděleno mezerami) - –range: Rozsah primárních klíčů ve formátu „start end“ - –save-thumbs: Generovat náhledy pro obrazové soubory - –disable-antivirus: Přeskočit antivirovou kontrolu

Poznámka: - Musí být zadán buď –pks nebo –range, ne oba současně

Příklady použití:

Hostitelský adresář /home/migrace je v Docker YAML namapovaný na /vol/data-migrace, proto se uvnitř kontejneru používá cesta /vol/data-migrace:

python manage.py save_files_from_storage /vol/data-migrace/files –pks 1 2 3 python manage.py save_files_from_storage /vol/data-migrace/files –range 100 200 python manage.py save_files_from_storage /vol/data-migrace/files –pks 10 20 –save-thumbs

help = 'core.management.commands.save_files_from_storage.Command.help'
add_arguments(parser)

Provádí operaci add arguments.

Parametry:

parser – Parametr parser pracuje se s atributy add_argument.

handle(*args, **options)

Zpracuje hodnotu. v aplikaci.

Parametry:
  • args – Parametr args slouží jako vstup pro logiku funkce handle.

  • options

    Parametr options pracuje se s atributy get.

    raises CommandError:

    Vyvolá se při splnění podmínky pks and pk_range; nebo při splnění podmínky not pks and (not pk_range).

Parametry:

Název

Typ

Výchozí hodnota

Popis

storage_path

str

core.management.commands.save_files_from_storage.Command.add_arguments.storage_path_help

--pks

int

core.management.commands.save_files_from_storage.Command.add_arguments.pks_help

--range

int

core.management.commands.save_files_from_storage.Command.add_arguments.range_help

--save-thumbs

core.management.commands.save_files_from_storage.Command.add_arguments.save_thumbs_help

--disable-antivirus

core.management.commands.save_files_from_storage.Command.add_arguments.disable_antivirus_help

save_single_file_from_storage

class core.management.commands.save_single_file_from_storage.Command(stdout=None, stderr=None, no_color=False, force_color=False)

Django management příkaz pro uložení jednotlivého souboru ze storage.

Tento příkaz načte soubor z lokálního úložiště podle jeho primárního klíče, provede kontroly (MIME type, antivirus), a uloží jej do Fedora repozitáře včetně aktualizace metadat v databázi.

Argumenty: - pk: Primární klíč záznamu souboru v databázi - storage_path: Cesta k adresáři obsahujícímu soubory

Parametry: - –save-thumbs: Generovat náhledy pro obrazové soubory - –disable-antivirus: Přeskočit antivirovou kontrolu

Příklady použití:

Hostitelský adresář /home/migrace je v Docker YAML namapovaný na /vol/data-migrace, proto se uvnitř kontejneru používá cesta /vol/data-migrace:

python manage.py save_single_file_from_storage 123 /vol/data-migrace/files python manage.py save_single_file_from_storage 456 /vol/data-migrace/storage –save-thumbs

help = 'core.management.commands.save_single_file_from_storage.Command.help'
add_arguments(parser)

Provádí operaci add arguments.

Parametry:

parser – Parametr parser pracuje se s atributy add_argument.

handle(*args, **options)

Zpracuje hodnotu. v aplikaci.

Parametry:
  • args – Parametr args slouží jako vstup pro logiku funkce handle.

  • options – Parametr options slouží jako vstup pro logiku funkce handle.

Parametry:

Název

Typ

Výchozí hodnota

Popis

pk

int

core.management.commands.save_single_file_from_storage.Command.add_arguments.pk_help

storage_path

str

core.management.commands.save_single_file_from_storage.Command.add_arguments.storage_path_help

--save-thumbs

core.management.commands.save_single_file_from_storage.Command.add_arguments.save_thumbs_help

--disable-antivirus

core.management.commands.save_single_file_from_storage.Command.add_arguments.disable_antivirus_help

send_test_emails

class core.management.commands.send_test_emails.Command(stdout=None, stderr=None, no_color=False, force_color=False)

Odešle testovací emaily na zadané adresy

Poznámka:
  • testovací adresy jsou v CustomAdminSettings

  • Item group:settings

  • Item id:mail_test

ve formátu json { „emails“: [ „mail@neco.cz“, „mail1@neco.cz“ ] } může jich být více

Příklady použití:

python manage.py send_test_emails
help = 'core.management.commands.send_test_emails.Command.help'
get_emails_settings()

Načte seznam testovacích emailových adres z administrátorského nastavení.

Vrací:

Seznam emailových adres určených pro testovací odeslání.

handle(*args, **options)

Odešle testovací email na všechny adresy definované v nastavení.

Parametry:
  • args – Dodatečné poziční argumenty předané příkazu.

  • options – Dodatečné pojmenované argumenty předané příkazu.

transform_to_sjtsk

class core.management.commands.transform_to_sjtsk.Command(stdout=None, stderr=None, no_color=False, force_color=False)

Django management příkaz pro transformaci souřadnic do systému S-JTSK.

Tento příkaz transformuje geometrie z WGS84 do souřadnicového systému S-JTSK pro různé typy záznamů (PIAN, nález, projekt, dokument).

Parametry: - model: Typ modelu pro transformaci (pian, nalez, projekt, dokument)

Poznámka: - Transformuje pouze záznamy, které mají vyplněnou geometrii (geom) ale nemají vyplněnou S-JTSK geometrii (geom_sjtsk)

Příklady použití:

python manage.py transform_to_sjtsk pian python manage.py transform_to_sjtsk nalez python manage.py transform_to_sjtsk projekt python manage.py transform_to_sjtsk dokument

help = 'core.management.commands.transform_to_sjtsk.Command.help'
add_arguments(parser)

Provádí operaci add arguments.

Parametry:

parser – Parametr parser pracuje se s atributy add_argument.

handle(*args, **options)

Zpracuje hodnotu. v aplikaci.

Parametry:
  • args – Parametr args slouží jako vstup pro logiku funkce handle.

  • options – Parametr options slouží jako vstup pro logiku funkce handle.

Parametry:

Název

Typ

Výchozí hodnota

Popis

model

str

core.management.commands.transform_to_sjtsk.Command.add_arguments.model_help

update_pristupnost_snapshot

class core.management.commands.update_pristupnost_snapshot.Command(stdout=None, stderr=None, no_color=False, force_color=False)

Django management příkaz pro aktualizaci snímku přístupnosti projektů.

Tento příkaz prochází všechny projekty a aktualizuje jejich pole pristupnost_snapshot pomocí metody set_pristupnost(). Projekty jsou zpracovávány v dávkách pro optimalizaci výkonu a zamezení přílišnému zatížení databáze.

Parametry: - –batch-size: Velikost dávky pro zpracování (výchozí: 100)

Poznámka: - Pro projekty je dočasně potlačen signál (suppress_signal=True) aby nedošlo k nežádoucím vedlejším efektům během hromadné aktualizace

Příklady použití:

python manage.py update_pristupnost_snapshot python manage.py update_pristupnost_snapshot –batch-size 200 python manage.py update_pristupnost_snapshot –batch-size 50

help = 'core.management.commands.update_pristupnost_snapshot.Command.help'
add_arguments(parser)

Provádí operaci add arguments.

Parametry:

parser – Parametr parser pracuje se s atributy add_argument.

handle(*args, **options)

Zpracuje hodnotu. v aplikaci.

Parametry:
  • args – Parametr args slouží jako vstup pro logiku funkce handle.

  • options – Parametr options slouží jako vstup pro logiku funkce handle.

Parametry:

Název

Typ

Výchozí hodnota

Popis

--batch-size

int

100

core.management.commands.update_pristupnost_snapshot.Command.add_arguments.batch_size_help

update_snapshot_fields

class core.management.commands.update_snapshot_fields.Command(stdout=None, stderr=None, no_color=False, force_color=False)

Django management příkaz pro spuštění aktualizace snapshot fields.

Tento příkaz spustí sdílený cron task update_snapshot_fields, který provede potřebné přepočty a uložení snapshot hodnot do databáze.

Poznámka: - Příkaz nespouští aktualizaci synchronně, ale předává úlohu do asynchronního cron systému - Snapshot fields zahrnují předpočítané hodnoty pro optimalizaci výkonu

Příklady použití:

python manage.py update_snapshot_fields

help = 'core.management.commands.update_snapshot_fields.Command.help'
handle(*args, **options)

Zpracuje hodnotu. v aplikaci.

Parametry:
  • args – Parametr args slouží jako vstup pro logiku funkce handle.

  • options – Parametr options slouží jako vstup pro logiku funkce handle.

write_value_to_redis

class core.management.commands.write_value_to_redis.Command(stdout=None, stderr=None, no_color=False, force_color=False)

Django management příkaz pro zápis hodnoty do Redis.

Tento příkaz předá klíč a hodnotu do sdíleného cron tasku, který provede zápis do Redis (asynchronně s nízkou prioritou).

Parametry: - key: Redis klíč - value: Hodnota, která se pod klíčem uloží

Příklady použití:

python manage.py write_value_to_redis foo bar

help = 'core.management.commands.write_value_to_redis.Command.help'
add_arguments(parser)

Provádí operaci add arguments.

Parametry:

parser – Parametr parser pracuje se s atributy add_argument.

handle(*args, **kwargs)

Zpracuje hodnotu. v aplikaci.

Parametry:
  • args – Parametr args slouží jako vstup pro logiku funkce handle.

  • kwargs – Parametr kwargs slouží jako vstup pro logiku funkce handle.

Parametry:

Název

Typ

Výchozí hodnota

Popis

key

str

core.management.commands.write_value_to_redis.Command.add_arguments.key_help

value

str

core.management.commands.write_value_to_redis.Command.add_arguments.value_help