Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Adam Brentner - Verzování APEX aplikací

APEX solutions
October 31, 2023
49

Adam Brentner - Verzování APEX aplikací

APEX solutions

October 31, 2023
Tweet

Transcript

  1. 1

  2. Verzování APEX aplikací 3 • Co je to verzování a

    k čemu ho potřebujeme? • Verzování a APEX • Možnosti exportu aplikací • Automatizace exportu • Limity a tipy • Ukázka
  3. Co je to verzování a k čemu ho potřebujeme? 5

    • Zajištění kvality kódu aplikací • Sledování změn v kódu a jejich řízení • Kooperace vícečlenného týmu • Deployment
  4. Verzování a APEX 7 • Zdrojové kódy APEXu jako řádky

    v tabulkách, složité na verzování • Možnost exportu aplikace – instalačního skriptu
  5. Možnosti exportu aplikací 9 • Export celého instalačního skriptu •

    Rozdělení instalačního skriptu podle komponentů • Readable Format • Export with Original IDs
  6. Export celého instalačního skriptu 10 • Jeden velký soubor •

    Postupné volání procedur, které vytvářejí řádky v tabulkách
  7. Rozdělení instalačního skriptu podle komponentů 12 • Každý logický komponent

    (stránka, autorizační schéma, LOV, ...) má vlastní SQL skript
  8. Readable Format 14 • Každý logický komponent (stránka, autorizační schéma,

    LOV, ...) má vlastní JSON/YAML soubor • Nejedná se o instalační skript
  9. Export with Original IDs 16 • Zachovává původní ID componentů

    při opakovaném importu a exportu aplikace • Vyhnutí rozdílu v ID atributu při porovnávání aplikací z různých prostředí • POZOR: při importu použít proceduru APEX_APPLICATION_INSTALL.GENERATE_OFFSET
  10. APEXExport 19 • JAVA utilita • Výstupem jsou celé instalační

    skripty nebo SQL skripty rozdělené podle komponentů • apex_23.1_en\apex\utilities\ • https://oracle-base.com/articles/misc/apexexport • DEPRECATED %JAVA_HOME%\bin\java oracle.apex.APEXExport ^ -db %DB_HOST%:%DB_PORT%/%DB_SERVICE% ^ -user %DB_USERNAME% ^ -password %DB_PASSWORD% ^ -workspaceid %WORKSPACE_ID% ^ -applicationid %APEX_APP_ID% ^ -expOriginalIds -split
  11. SQLcl 20 • Command line interface pro Oracle DB •

    Nutné se přihlásit jako uživatel, jehož schéma je přiřazena k APEX workspace, DBA nebo uživatel s rolí APEX_ADMINISTRATOR_ROLE • Možnost všech formátů výstupu • https://docs.oracle.com/en/database/oracle/apex/23.1/aeadm/exporting-and-importing-using- sqlcl.html $ sql apex_admin/password@examplehost:1521/yourservicename SQL> apex export -applicationid 1234 -expType READABLE_JSON -expOriginalIds
  12. ORDS REST API 21 • ORDS 23.1+ • Výstupem jsou

    celé instalační skripty nebo SQL skripty rozdělené podle komponentů • Carsten Czarski: https://blogs.oracle.com/apex/post/oracle-apex-app-deployments-made-easy- use-the-ords-rest-apis • https://docs.oracle.com/en/database/oracle/oracle-rest-data-services/23.2/orrst/api-oracle- apex.html $ curl -X GET \ -u "USERNAME:PASSWORD" \ http://localhost:8085/ords/SCHEMA/_/db-api/stable/apex/applications/100?export_format=SQL_ZIP > f100.sql
  13. APEX_EXPORT 22 • PL/SQL API • Možnost všech formátů výstupu

    • https://docs.oracle.com/en/database/oracle/apex/23.1/aeapi/APEX_EXPORT.html#GUID- 6A4628A6-9F86-4394-9938-87A7FFFC7BC8 DECLARE l_files apex_t_export_files; BEGIN l_files := apex_export.get_application(p_application_id => 100, p_type => 'READABLE_JSON‘, p_with_original_ids => TRUE); END;
  14. Limity a tipy 24 Rollback a Merge All or nothing

    přístup nasazování Co nejvíce kódu držet mimo APEX aplikace Build Options Page Locking