Menu ▾ ▴

atualizacao

Mobius One

Home > Atualizar de versão

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.

Como atualizar

  1. Feche o Delphi/Lazarus.
  2. Atualize os fontes (git pull e git submodule update --init --recursive, ou
    baixe a versão nova em Releases).
  3. Recompile e reinstale todos os pacotes do RAL, na ordem da instalação
    (Delphi, Lazarus).
  4. Atualize cliente e servidor juntos quando a tabela abaixo disser.
  5. Leia a tabela da sua versão.

1.0 → 1.1

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

1.1 → 1.2 🚧

[!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

1.2 → 2.0 🚧

[!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

Veja também


Related

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