Definir compatibility level / versão de recursos
Oracle
-- Raise the COMPATIBLE initialization parameter (irreversible!):
ALTER SYSTEM SET COMPATIBLE = '19.0.0' SCOPE=SPFILE;
-- Then restart the instance. To see the current value:
SHOW PARAMETER compatible;O parâmetro COMPATIBLE determina quais recursos e formatos de arquivo de versão estão habilitados. Depois de elevado e com a instância reiniciada, NÃO PODE SER REVERTIDO (o downgrade fica bloqueado); por isso, eleve-o gradualmente até confirmar o sucesso do upgrade.
PostgreSQL
# Not applicable: PostgreSQL has no database compatibility level.
# If legacy behavior is needed, set the relevant GUCs (e.g. SET standard_conforming_strings=off)
# or manage the major migration with dump/restore.O PostgreSQL não tem um conceito de 'compatibility level' como o SQL Server/Oracle; o comportamento da versão está ligado diretamente à versão do binário. A migração entre versões é feita com pg_dump/pg_restore ou pg_upgrade.
MySQL
# Not applicable: MySQL has no configurable database compatibility level.
# Behavioral differences are managed with sql_mode:
SET GLOBAL sql_mode = 'STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION';O MySQL não tem compatibility level baseado em versão; o comportamento SQL depende principalmente da versão do binário e da configuração de sql_mode. Ajuste o sql_mode para preservar o comportamento de aplicações legadas.
SQL Server
-- Set the database compatibility level (e.g. SQL Server 2022 = 160):
ALTER DATABASE Sales SET COMPATIBILITY_LEVEL = 160;
-- To see the current value:
SELECT name, compatibility_level FROM sys.databases;COMPATIBILITY_LEVEL determina a qual versão correspondem o comportamento do otimizador de consultas e os recursos da linguagem (150=2019, 160=2022). Após o upgrade da instância, os bancos podem permanecer no nível antigo; recomenda-se elevá-lo gradualmente e monitorar regressões de plano. Pode ser reduzido novamente.
MongoDB
// Set the Feature Compatibility Version (FCV):
db.adminCommand({ setFeatureCompatibilityVersion: "7.0", confirm: true })
// Read the current value:
db.adminCommand({ getParameter: 1, featureCompatibilityVersion: 1 })O FCV controla quando as alterações de formato de dados persistentes e os novos recursos de uma versão são habilitados. Eleve-o após o upgrade do binário, com o cluster estável; reduzi-lo só é possível se a mesma versão de binário ainda suportar o FCV inferior.
Redis
# Not applicable: Redis has no compatibility level / feature version concept.
# Behavior depends directly on the running binary version.O Redis não tem compatibility level configurável; o conjunto de recursos depende inteiramente da versão em execução. A compatibilidade é preservada apenas no nível do formato de arquivo RDB/AOF, em direção para frente.
Elasticsearch
# Not applicable: Elasticsearch has no configurable compatibility level.
# An index is tied to the format of the version it was created in; very old indices
# cannot be read in the new version and require a reindex.O Elasticsearch não tem configuração de compatibility level; cada índice carrega o formato da versão major em que foi criado. Índices criados na versão major anterior podem ser lidos; os mais antigos devem ser movidos para a nova versão com _reindex.