Como entender as configurações de conversão do SQL Server para o PostgreSQL
As configurações de conversão do SQL Server para PostgreSQL na DMS Schema Conversion incluem o seguinte:
-
Para converter objetos de banco de dados aplicáveis usando IA generativa, habilite a configuração IA generativa. Objetos convertidos com êxito usando IA generativa serão claramente identificados com o Item de ação 7744, que declara: “This conversion uses machine learning models that generate predictions based on patterns in data”. Para obter mais informações, consulte Converter objetos de banco de dados com IA generativa.
-
No SQL Server, é possível utilizar índices com o mesmo nome em tabelas diferentes. No entanto, no PostgreSQL, todos os nomes de índices utilizados no esquema devem ser exclusivos. Para garantir que a DMS Schema Conversion gere nomes exclusivos para todos os índices, selecione Gerar nomes exclusivos para índices.
-
As versões 10 e anteriores do PostgreSQL não são compatíveis com procedimentos. Se você não estiver familiarizado com a utilização de procedimentos no PostgreSQL, oAWS DMS poderá converter os procedimentos do SQL Server como perfis do PostgreSQL. Para fazer isso, selecione Converter procedimentos em perfis.
-
O banco de dados SQL Server de origem pode armazenar a saída de
EXECem uma tabela. A DMS Schema Conversion cria tabelas temporárias e um procedimento adicional para emular esse recurso. Para utilizar essa emulação, selecione Criar rotinas adicionais para lidar com conjuntos de dados abertos. -
É possível definir o modelo a ser utilizado para os nomes dos esquemas no código convertido. Em Nomes de esquemas, selecione uma das seguintes opções:
-
DB: utiliza o nome do banco de dados SQL Server como o nome de um esquema no PostgreSQL.
-
ESQUEMA: utiliza o nome do esquema do SQL Server como o nome de um esquema no PostgreSQL.
-
DB_SCHEMA: utiliza uma combinação dos nomes do banco de dados e do esquema do SQL Server como o nome de um esquema no PostgreSQL.
-
-
É possível manter a distinção de maiúsculas e minúsculas no nome dos operandos de origem. Para evitar a conversão de nomes de operandos em minúsculas, selecione Evitar conversão em minúsculas em operações com distinção entre maiúsculas e minúsculas. Essa opção é aplicável somente se o recurso de distinção de maiúsculas e minúsculas estiver habilitado no banco de dados de origem.
-
É possível manter os nomes dos parâmetros do banco de dados de origem. A DMS Schema Conversion pode adicionar aspas duplas aos nomes dos parâmetros no código convertido. Para fazer isso, selecione Manter nomes de parâmetros originais.
-
Você pode manter uma série de parâmetros de rotina do banco de dados de origem. O DMS Schema Conversion cria domínios e os utiliza para especificar um tamanho para os parâmetros de rotina. Para isso, selecione Preservar tamanho dos parâmetros.
-
Para converter objetos integrados não compatíveis em objetos stub, habilite a configuração Converter objetos integrados não compatíveis em objetos stub:
-
Quando habilitada, a DMS SC substitui objetos integrados não compatíveis pelos objetos stub correspondentes no banco de dados de destino. Esse recurso converte seções de código que normalmente seriam delimitadas pelo problema de migração 7811 ou 7904. Ele cria objetos stub com base no tipo de objeto integrado de origem:
PROCEDUREpara procedimentos,VIEWpara visualizações ou tabelas.A conversão de um objeto de banco de dados de origem com uma chamada de um objeto não compatível resulta na chamada de um objeto stub e no problema de migração 7822.
Você pode optar por criar objetos stub em um esquema separado habilitando a opção Criar objetos stub em um esquema separado. Quando selecionados, os objetos stub são criados em um esquema especial denominado
aws_sqlserver_stubno banco de dados de destino. Se não forem selecionados, eles serão criados no mesmo esquema dos objetos de chamada. -
As rotinas de stub são nomeadas com base no nome totalmente qualificado do integrado original. Para visualizações de stub, a convenção de nomenclatura inclui o nome do esquema do sistema
system_schema_name$builtin_view_name.Durante a reconversão, a DMS SC verifica as rotinas de stub existentes no banco de dados de destino. Se já houver uma rotina com o mesmo nome e parâmetros de entrada, ela não será substituída.
Após a conversão, analise e implemente o código personalizado para rotinas de stub, conforme necessário.
-
-
O tipo de dados
CITEXTpara todas as configurações de tipos de dados de string na Conversão de Esquema do DMS inclui o seguinte:-
Para usar o tipo de dados
CITEXTpara operações de string que não diferenciam maiúsculas de minúsculas ao realizar a conversão do SQL Server em PostgreSQL, habilite a configuração Usar CITEXT para todos os tipos de dados de string. Essa opção ajuda a manter um comportamento consistente ao migrar de um SQL Server sem distinção entre maiúsculas e minúsculas para um ambiente PostgreSQL com distinção entre maiúsculas e minúsculas. -
Quando habilitada, a DMS SC converte todos os tipos de dados de string relevantes do banco de dados SQL Server de origem em
CITEXTno PostgreSQL. Isso elimina a necessidade de chamadas explícitas da função LOWER () em condições e, em operações condicionais, converte automaticamente expressões de string emCITEXT. -
Para determinar se sua instância do SQL Server diferencia maiúsculas e minúsculas, execute a seguinte consulta:
SELECT SERVERPROPERTY('COLLATION');Um resultado contendo “CI” indica que não há distinção entre maiúsculas e minúsculas, enquanto “CS” indica distinção entre maiúsculas e minúsculas.
-
A conversão
CITEXTpode não se aplicar em cenários em que configurações explícitas de agrupamento com distinção entre maiúsculas e minúsculas são usadas em nível de servidor, banco de dados ou coluna.Para usar esse recurso, o módulo
CITEXTdeve estar instalado e disponível no banco de dados PostgreSQL de destino. -
Ao utilizar a conversão do tipo de dados
CITEXT, considere as seguintes práticas recomendadas:-
Ative esse recurso ao migrar de um SQL Server que não diferencia maiúsculas de minúsculas para manter um comportamento consistente no PostgreSQL.
-
Analise o código da aplicação para garantir que ele não se baseie em operações de string com distinção entre maiúsculas e minúsculas.
-
Teste minuciosamente a aplicação após a migração para verificar se o comportamento que não diferencia maiúsculas e minúsculas é mantido conforme o esperado.
-
-