2.38 Upgrade Notes¶
Please ensure you have read the upgrade notes from the PREVIOUS RELEASE, if upgrading from an earlier version
Java Support¶
A partir do DHIS 2.38, o Java JDK versão 11 é necessário. Isso significa que o Java 8 não é mais suportado.
Java 11 tem suporte para DHIS 2 desde a versão 2.35. Isso significa que pode atualizar seu servidor para o JDK 11 enquanto ainda estiver executando o DHIS 2.35 ou posterior em preparação para a atualização do DHIS 2.38. O Java 11 provou ser confiável e significativamente mais rápido para o DHIS 2 em produção.
Como sempre, recomendamos o uso de uma distribuição OpenJDK de Java, devido à natureza livre e de código aberto. As distribuições do OpenJDK 11 estão disponíveis em todos os principais sistemas operacionais e é o JDK padrão no Ubuntu 20.04 LTS.
Base de dados¶
- Todas as tabelas de valores de atributos de metadados legados agora foram removidas. Essas tabelas têm o postfix
*attributevalues, comocategoryattributevaluesoudatasetattributevalues. - Na tabela
sqlview, restriçõesnot-nullforam adicionadas às colunastypeecachestrategy. - The table
usersare removed, and its data are migrated into theuserinfotable. (This does not affect the API, which maintains backward compatibility) - For adding trigram indexes and compounding it with primitive column types, two extensions have to be created in the database. The extensions are already part of the default posgresql installation. Extensions:
create extension pg_trgm; create extension btree_gin; - Starting in 2.38, PRVs have a value type (valueType field in the API, valuetype column on the DB table)
Since this new field cannot be null, the system assigns valueType = TEXT to all PRVs
If you happen to have PRVs of source type CALCULATED_VALUE, and they are supposed to hold a numeric value, when they are initialized by default to TEXT, some PRs are impacted.
Por exemplo: Suppose PRV AgeYears is used as follows in a condition of a PRAfter the upgrade to 2.38, this PR is no longer working because #{AgeYears} is of type TEXT, so comparing it against a number gives an error (or warning)#{AgeYears} > 5
Program rule variables which are not of type TEXT must be updated with the proper valueType. In the above example, AgeYears should have the valueType set to NUMBER.
API¶
- A execução de tarefas manualmente usando
/api/jobConfigurations/executemudou de usar o método de solicitaçãoGETparaPOST. - O ID do programa agora é obrigatório para o estágio do programa. Os endpoints afetados são
/programStages,/metadata. - O endpoint
GET /systemSettingsque retorna JSONP (Accept=application/javascript) foi removido. - Several API endpoints slightly change their response root object to be in line with the majority of endpoints. The root object returned prior to 2.38 will become the member named
responseof the new root object returned in 2.38. Consumers can opt to either use/api/37/to get the old behaviour or have to unpack to new response by doing<root>.responseto resolve the previous root from the 2.38 response.
NOTE
In case of an error, responses will return HTTP status
409 Conflictand not200 OK.
Os endpoints afetados são:
POST /api/completeDataSetRegistrationswithJSON/XML(only nonasyncaffected)POST /api/dataValueSetscomJSON/XML/ADX/CSV(apenas não afetado porasync)POST /api/metadatacomJSON/XML/GML/CSV(somente não afetado porasync)POST /api/predictions(somente nãoasyncafetado)PUT /api/predictions(somente nãoasyncafetado)PUT /api/relationships/{id}PUT /api/users/{uid}comJSON/XML