Repository navigation
atualizacao
mobius1qwe edited this page Oct 29, 2026
·
4 revisions
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.
- Feche o Delphi/Lazarus.
- Atualize os fontes (
git pullegit submodule update --init --recursive, ou baixe a versão nova em Releases). - Recompile e reinstale todos os pacotes do RAL, na ordem da instalação (Delphi, Lazarus).
- Atualize cliente e servidor juntos quando a tabela abaixo disser.
- Leia a tabela da sua versão.
| 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 |
| 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 |
Começar
Servidor
- Rotas e parâmetros
- Rotas avançadas: tipos, grupos, versões 🚧
- Ler o pedido e responder
- Resposta em fluxo 🚧
- Plugins 🚧
- Autenticação
- Banco de dados (DBWare)
- Servir site e arquivos
- Swagger e Postman
- Servidor SOAP 🚧
- HTTPS
- Criptografia ponto a ponto
- Segurança para produção
- Colocar no ar
- Desempenho
MQTT 🚧
- O que é e quando usar 🚧
- Cliente MQTT 🚧
- Broker MQTT 🚧
- MQTT-SN 🚧
- Ponte REST 🚧
- Segurança 🚧
- Rede ruim 🚧
Cliente
Motores
Avançado
Ajuda
- Problemas comuns
- Atualizar o Indy
- Várias versões do Delphi
- Vídeos e guias
- Módulos de terceiros
- Licenças
- Contribuir
- Roadmap e changelog
🚧 = em desenvolvimento, pode mudar