Home > Atualizar de versão
Em uma frase: o que muda no seu código ao trocar de versão do RAL, e o que fazer.
git pull e git submodule update --init --recursive, ou| O que muda | O que fazer |
|---|---|
| novas pastas no library path | acrescente $(PascalRAL)\base\plugins e $(PascalRAL)\base\modules |
eventos OnGetToken e OnValidate do JWT passaram a ser of object (método de uma classe) |
mova o procedimento para dentro do formulário/datamodule; ou use OnGetTokenGen/OnValidateGen para procedimento solto |
| criptografia AES virou CBC de verdade, com verificação de integridade | atualize cliente e servidor juntos: 1.0 e 1.1 não se entendem |
JWT sem OnGetToken não emite mais token |
atribua OnGetToken e confira as credenciais ali |
[!IMPORTANT]
Em desenvolvimento (1.2). Ainda não está numa versão lançada e pode mudar.
| O que muda | Quem é afetado | O que fazer |
|---|---|---|
chamadas do cliente com evento esperam a resposta por padrão (ebSingleThread) |
quem chama de botões | passe ebMultiThread onde a tela não pode travar |
ShareConnection e PoolConnection ligados por padrão |
quase ninguém | nada; desligue se precisar de conexão exclusiva |
CORS fechado por padrão (AllowOrigin vazio) |
servidor criado em código que dependia do * |
CORSOptions.AllowOrigin := '*' ou a lista de sites. Formulários salvos com * continuam com * |
DocumentRoot vazio do WebModule não serve nada |
quem servia a pasta do .exe | aponte DocumentRoot, ou UseApplicationPathAsRoot := True |
o WebModule só responde dentro do seu Domain |
quem tinha WebModule com Domain e servia fora dele |
ajuste o Domain |
cada motor separa os parâmetros pela origem (formulário = rpkFIELD, URL = rpkQUERY) |
quem lia por tipo (GetKind, AssignParamsUrl) no Indy, UniGUI, fpHTTP e CGI |
ParamByName continua igual; revise a leitura por tipo |
| NUMERIC/DECIMAL com todas as casas; datas com milissegundos | DBWare com o outro lado mais antigo | atualize os dois, ou RALLegacyWire := True no lado novo |
ApplyUpdates/ExecSQL das memtables levantam exceção ao falhar, e UPDATE/DELETE que não acha 1 registro é erro |
DBWare | trate com try/except; CountUpdatedRecords := False para UpdateSQL que mexe em vários |
| verbo não permitido responde 405 (era 404) | quem testava o 404 | ajuste o teste |
Params.Body e TRALParam.AsStream obsoletos para leitura (vazam memória) |
quem lia por eles | Content, SaveToStream, Count(rpkBODY) |
TRALSaguiServer.ConnectionLimit agora é MaxConnections |
Sagui | nada: o nome antigo ainda compila |
no mORMot2 o padrão continua Mode := smThreads |
— | smAsync/smHttpSys são opcionais |
[!IMPORTANT]
Em desenvolvimento (2.0). Ainda não está numa versão lançada e pode mudar.
| O que muda | Quem é afetado | O que fazer |
|---|---|---|
CompressType, CriptoOptions, MaxRequestSize, JSONBodyToParams, CORSOptions, Security, SecurityHeaders saíram do servidor e viraram plugins |
todo servidor | ligue os plugins equivalentes (tabela em Plugins) |
| sem plugin, o servidor não comprime, não cifra e não manda CORS | todo servidor | idem |
| formulário salvo na 1.2 com essas propriedades não abre | quem usa o servidor no formulário | antes de abrir, apague as linhas no .dfm/.lfm (View as Text), ou escolha Ignore ao abrir; depois ligue os plugins |
| OAuth 1.0a removido | quem usava TRALClientOAuth/TRALServerOAuth (nunca funcionou) |
OAuth2 (Autenticação) |
Body.Content pode não ser TMemoryStream (acima de 8 MB) |
quem fazia TMemoryStream(Param.Content).Memory |
leia como TStream (Corpo sem cópias) |
| corpo recebido é somente leitura | quem escrevia em Body.Content |
use AsStream (uma cópia) |
ResponseText no servidor é o texto respondido, não o gzip |
quem lia ResponseText no OnResponse |
nada a fazer na maioria dos casos |
| imagem, zip, pdf... não são mais comprimidos | — | nada: SkipCompressedTypes := False volta ao antigo |
TRALSelfSigned chama-se TRALSelfSignedPlugin |
— | use o nome novo |
pastas e pacotes reorganizados: autenticação, storages, certificado, Web e Swagger saíram do PascalRAL; vários pacotes mudaram de nome |
quem instala à mão, compila os fontes direto ou tem pacotes que exigem os do RAL | Migrar para a 2.0; o instalador faz a troca sozinho |
| é preciso ao menos um motor instalado | — | o instalador não instala sem um |
Wiki: Home
Wiki: Instalacao
Wiki: _Sidebar
Wiki: autenticacao
Wiki: instalacao_delphi
Wiki: instalacao_lazarus
Wiki: instalador
Wiki: migrar para 2.0
Wiki: plugins
Wiki: problemas comuns
Wiki: roadmap