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.
Zjistěte ID běžícího kontejneru:
docker psSpusťte shell v kontejneru (například s ID
fdd99a0b6c90):docker exec -it aiscr-webamcr-web /bin/sh
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.
Zjistěte ID běžícího kontejneru:
sudo docker ps
Spusťte shell v kontejneru:
sudo docker exec -it <ID_kontejneru> /bin/sh
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
argsslouží jako vstup pro logiku funkcehandle.options – Parametr
optionsslouží jako vstup pro logiku funkcehandle.
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
parserpracuje se s atributyadd_argument.
- handle(*args, **options)
Zpracuje hodnotu. v aplikaci.
- Parametry:
args – Parametr
argsslouží jako vstup pro logiku funkcehandle.options – Parametr
optionspracuje se s atributyget.
Parametry:
Název |
Typ |
Výchozí hodnota |
Popis |
|---|---|---|---|
|
|
|
core.management.commands.generate_metadata.Command.add_arguments.model_help |
|
|
|
core.management.commands.generate_metadata.Command.add_arguments.limit_help |
|
|
|
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
parserpracuje se s atributyadd_argument.
- handle(*args, **options)
Zpracuje vstupní argumenty příkazu a spustí generování náhledů.
- Parametry:
args – Parametr
argsslouží jako vstup pro logiku funkcehandle.options –
Parametr
optionspracuje se s atributyget.- raises CommandError:
Vyvolá se při splnění podmínky
provided_options != 1.
Parametry:
Název |
Typ |
Výchozí hodnota |
Popis |
|---|---|---|---|
|
|
core.management.commands.generate_thumbs.Command.add_arguments.pks_help |
|
|
|
core.management.commands.generate_thumbs.Command.add_arguments.range_help |
|
|
|
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.csva 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í hodnotyPří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
argsslouží jako vstup pro logiku funkcehandle.options – Parametr
optionsslouží jako vstup pro logiku funkcehandle.
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/migraceje 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
parserpracuje se s atributyadd_argument.
- handle(*args, **options)
Zpracuje hodnotu. v aplikaci.
- Parametry:
args – Parametr
argsslouží jako vstup pro logiku funkcehandle.options – Parametr
optionsslouží jako vstup pro logiku funkcehandle.
Parametry:
Název |
Typ |
Výchozí hodnota |
Popis |
|---|---|---|---|
|
|
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/migraceje 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
parserpracuje se s atributyadd_argument.
- handle(*args, **options)
Zpracuje hodnotu. v aplikaci.
- Parametry:
args – Parametr
argsslouží jako vstup pro logiku funkcehandle.options –
Parametr
optionspracuje se s atributyget.- raises CommandError:
Vyvolá se při splnění podmínky
pks and pk_range; nebo při splnění podmínkynot pks and (not pk_range).
Parametry:
Název |
Typ |
Výchozí hodnota |
Popis |
|---|---|---|---|
|
|
core.management.commands.save_files_from_storage.Command.add_arguments.storage_path_help |
|
|
|
core.management.commands.save_files_from_storage.Command.add_arguments.pks_help |
|
|
|
core.management.commands.save_files_from_storage.Command.add_arguments.range_help |
|
|
core.management.commands.save_files_from_storage.Command.add_arguments.save_thumbs_help |
||
|
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/migraceje 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
parserpracuje se s atributyadd_argument.
- handle(*args, **options)
Zpracuje hodnotu. v aplikaci.
- Parametry:
args – Parametr
argsslouží jako vstup pro logiku funkcehandle.options – Parametr
optionsslouží jako vstup pro logiku funkcehandle.
Parametry:
Název |
Typ |
Výchozí hodnota |
Popis |
|---|---|---|---|
|
|
core.management.commands.save_single_file_from_storage.Command.add_arguments.pk_help |
|
|
|
core.management.commands.save_single_file_from_storage.Command.add_arguments.storage_path_help |
|
|
core.management.commands.save_single_file_from_storage.Command.add_arguments.save_thumbs_help |
||
|
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
parserpracuje se s atributyadd_argument.
- handle(*args, **options)
Zpracuje hodnotu. v aplikaci.
- Parametry:
args – Parametr
argsslouží jako vstup pro logiku funkcehandle.options – Parametr
optionsslouží jako vstup pro logiku funkcehandle.
Parametry:
Název |
Typ |
Výchozí hodnota |
Popis |
|---|---|---|---|
|
|
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
parserpracuje se s atributyadd_argument.
- handle(*args, **options)
Zpracuje hodnotu. v aplikaci.
- Parametry:
args – Parametr
argsslouží jako vstup pro logiku funkcehandle.options – Parametr
optionsslouží jako vstup pro logiku funkcehandle.
Parametry:
Název |
Typ |
Výchozí hodnota |
Popis |
|---|---|---|---|
|
|
|
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
argsslouží jako vstup pro logiku funkcehandle.options – Parametr
optionsslouží jako vstup pro logiku funkcehandle.
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
parserpracuje se s atributyadd_argument.
- handle(*args, **kwargs)
Zpracuje hodnotu. v aplikaci.
- Parametry:
args – Parametr
argsslouží jako vstup pro logiku funkcehandle.kwargs – Parametr
kwargsslouží jako vstup pro logiku funkcehandle.
Parametry:
Název |
Typ |
Výchozí hodnota |
Popis |
|---|---|---|---|
|
|
core.management.commands.write_value_to_redis.Command.add_arguments.key_help |
|
|
|
core.management.commands.write_value_to_redis.Command.add_arguments.value_help |