View a markdown version of this page

Configurações de conversão do SQL Server para o PostgreSQL - AWS Database Migration Service

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Configurações de conversão do SQL Server para o PostgreSQL

As configurações a seguir se aplicam quando a origem é o Microsoft SQL Server e o destino é o Amazon RDS for PostgreSQL ou o Amazon Aurora PostgreSQL. Você pode definir essas configurações usando a operação Console de gerenciamento da AWS ou a ModifyConversionConfigurationAPI.

Este tópico aborda as configurações específicas do caminho de conversão do SQL Server para o PostgreSQL. Além dessas configurações, o DMS Schema Conversion fornece configurações que se aplicam a todos os pares de origem e destino, como o nível de severidade dos comentários de itens de ação no SQL convertido e a opção de usar IA generativa para conversão. Para essas configurações, consulteConfigurações de conversão comuns.

Ao usar a API ou a AWS CLI, especifique as configurações do caminho de conversão sob os nomes das seções MSSQL_TO_POSTGRESQLMSSQL_TO_POSTGRESQL_14, ou. MSSQL_TO_POSTGRESQL_15 Todas as três seções versionadas aceitam as mesmas chaves. Para descobrir quais nomes de seção seu projeto usa, chame DescribeConversionConfigurationprimeiro e atualize somente as seções presentes na resposta.

Cada configuração mostra o Console de gerenciamento da AWS rótulo seguido pelo nome do parâmetro da API e da AWS CLI entre parênteses. Use o nome do parâmetro ao definir as configurações com a API ou a AWS CLI.

Configurações de metadados

Configurações que controlam como os metadados do SQL Server de origem — nomes de objetos, estrutura do esquema e definições de índice — são tratados durante a conversão.

Trate os nomes dos objetos do banco de dados de origem como diferenciando maiúsculas de minús CaseSensitivityNames

Controla como os nomes dos objetos (tabelas, colunas, procedimentos etc.) são tratados durante a conversão.

  • true— Os nomes dos objetos são preservados em maiúsculas e minúsculas originais e agrupados em identificadores de aspas duplas (por exemplo,"MyTable"). Use isso quando seu aplicativo fizer referência a objetos usando nomes de maiúsculas e minúsculas mistos.

  • false— Os nomes dos objetos são dobrados para minúsculas sem aspas (por exemplo,mytable). Isso corresponde ao comportamento padrão de dobragem de maiúsculas e minúsculas do PostgreSQL.

Tipo: Boolean (true|false)

Padrão: false

Gere nomes exclusivos para índices () UniqueIndexGeneration

Controla se o DMS Schema Conversion gera nomes de índice exclusivos no esquema PostgreSQL de destino. No SQL Server, os índices podem compartilhar o mesmo nome em tabelas diferentes. No PostgreSQL, todos os nomes de índice dentro de um esquema devem ser exclusivos.

  • true— O DMS Schema Conversion gera nomes exclusivos para todos os índices, anexando um sufixo quando necessário para evitar colisões. Use isso quando seu esquema de origem tiver índices com o mesmo nome em tabelas diferentes.

  • false— Os nomes dos índices são preservados da fonte no estado em que se encontram. Se o mesmo nome de índice existir em várias tabelas, a implantação no PostgreSQL poderá falhar com um erro de nome duplicado.

Tipo: Boolean (true|false)

Padrão: true

Converter procedimentos em funções (ConvertProceduresToFunction)

Controla se os procedimentos armazenados são convertidos em funções ou procedimentos do PostgreSQL.

  • false— Os procedimentos são convertidos em objetos PostgreSQL (requer o PROCEDURE PostgreSQL 11 ou posterior).

  • true— Os procedimentos que retornam um conjunto de resultados são convertidos em objetos FUNCTION PostgreSQL. Use isso quando seu aplicativo ler um conjunto de resultados de uma chamada de procedimento ou ao usar o PostgreSQL 10 ou anterior.

Tipo: Boolean (true|false)

Padrão: false

Crie rotinas adicionais para lidar com conjuntos de dados abertos () OpenDatasetsProcedures

Controla como os procedimentos que armazenam a saída de EXEC em uma tabela são convertidos.

  • false— Esses padrões são deixados como itens de ação.

  • true— O DMS Schema Conversion cria tabelas temporárias e um procedimento adicional para emular esse padrão no destino.

Tipo: Boolean (true|false)

Padrão: false

Nomes de esquemas () SchemaNameTemplate

Controla como o nome do esquema PostgreSQL de destino é gerado a partir da convenção de nomenclatura de duas partes do SQL Server (banco de dados + esquema).

Etiqueta do console API/CLI valor Nome do esquema de destino gerado
DB_SCHEMA DB_SCHEMA database_ schema (por exemplo,AdventureWorks_dbo). Use ao migrar vários bancos de dados para a mesma instância do PostgreSQL para evitar colisões de nomes.
DB DB database (por exemplo, AdventureWorks).
SCHEMA SCHEMA schema (por exemplo, dbo). Use ao migrar um único banco de dados e você deseja nomes de esquema limpos sem um prefixo de banco de dados.

Tipo: String (enum)

Padrão: DB_SCHEMA

Configurações de código SQL

Configurações que controlam como o código do SQL Server — identificadores, parâmetros, tipos de dados e funções não suportadas — é tratado durante a conversão.

Mantenha os nomes dos objetos no mesmo caso (AvoidCastingToLowerCase)

Controla se o DMS Schema Conversion adiciona conversões automáticas em torno de identificadores no código LOWER() convertido.

  • false— O DMS Schema LOWER() Conversion adiciona conversões quando necessário para normalizar as comparações de casos.

  • true— Nenhuma LOWER() transmissão automática é adicionada. Use isso quando seu banco de dados PostgreSQL usa a extensão ou um agrupamento sem distinção entre maiúsculas e citext minúsculas para lidar com comparações de forma nativa.

Tipo: Boolean (true|false)

Padrão: false

nota

Essa configuração não tem efeito quando UseCitextForAllStringDatatypes está ativada. Quando todos os tipos de string são mapeados paraCITEXT, a comparação sem distinção entre maiúsculas e minúsculas é tratada nativamente pelo próprio tipo, portanto, nenhuma conversão é gerada, independentemente LOWER() dessa configuração.

Mantenha os nomes dos parâmetros originais (KeepOriginalParameterManes)

Controla se os nomes dos parâmetros originais das T-SQL rotinas são preservados na assinatura de rotina do PostgreSQL convertida.

  • false— Os parâmetros podem ser renomeados para evitar conflitos com palavras reservadas ou convenções de nomenclatura do PostgreSQL.

  • true— Os nomes dos parâmetros originais são mantidos literalmente. Use isso quando seu aplicativo chamar rotinas usando a sintaxe de parâmetros nomeados (por exemplo,my_proc(param_name => value)).

Tipo: Boolean (true|false)

Padrão: false

nota

O nome do parâmetro da API é KeepOriginalParameterManes (terminando em Manes, não em Names). Use essa grafia exata ao chamar a API ou a AWS CLI. O uso não KeepOriginalParameterNames funcionará.

Use CITEXT para todos os tipos de dados de string () UseCitextForAllStringDatatypes

Controla o tipo de dados de destino para todas as colunas e parâmetros de caracteres.

  • false— Os tipos de caracteres (CHAR,VARCHAR,NCHAR,NVARCHAR) são mapeados para os tipos PostgreSQL correspondentes.

  • true— Todos os tipos de caracteres são mapeados para CITEXT (texto sem distinção entre maiúsculas e minúsculas). Use isso ao migrar de um agrupamento do SQL Server que não diferencia maiúsculas de minúsculas e você deseja preservar esse comportamento no PostgreSQL sem modificar as consultas.

Tipo: Boolean (true|false)

Padrão: false

nota

Quando essa configuração está ativada, a Conversão de Esquema do DMS é adicionada automaticamente CREATE EXTENSION IF NOT EXISTS citext; aos scripts de esquema convertidos (tanto ao aplicar ao destino quanto ao salvar em um arquivo). No entanto, o citext módulo deve estar disponível no banco de dados PostgreSQL de destino antes de você aplicar o esquema convertido.

Quando UseCitextForAllStringDatatypes ativada, a configuração Manter nomes de objetos no mesmo caso (AvoidCastingToLowerCase) não tem efeito, pois CITEXT trata a comparação sem distinção entre maiúsculas e minúsculas de forma nativa.

Converta objetos embutidos não suportados em objetos stub () ConvUnsupportedBuiltinsToStubs

Controla o que acontece quando o DMS Schema Conversion encontra uma função T-SQL incorporada que não tem equivalente direto do PostgreSQL.

  • false— A função não suportada é deixada como um item de ação no relatório de avaliação. O objeto convertido está marcado como exigindo revisão manual.

  • true— A função não suportada é substituída por uma função stub que tem a mesma assinatura, mas gera um erro de tempo de execução. O objeto convertido é compilado com êxito, permitindo que você implante e teste o restante do esquema antes de abordar stubs individuais. As funções Stub geram o problema de migração 7822.

Tipo: Boolean (true|false)

Padrão: false

Crie objetos stub em um esquema separado () CreateStubsInSeparateSchema

Controla onde os objetos stub são colocados quando ConvUnsupportedBuiltinsToStubs está habilitado.

  • false— Os objetos Stub são criados no mesmo esquema dos objetos de chamada.

  • true— Os objetos Stub são colocados em um aws_sqlserver_stub esquema dedicado no alvo. Use isso para manter o código stub isolado dos objetos convertidos do aplicativo.

Tipo: Boolean (true|false)

Padrão: false

Exemplo: definir as configurações do SQL Server para PostgreSQL

O exemplo a seguir define SchemaNameTemplateConvertProceduresToFunction, UseCitextForAllStringDatatypes e. Aplique as mesmas configurações ao nome de cada seção que seu projeto usa (verifique DescribeConversionConfigurationprimeiro a saída).

{ "MSSQL_TO_POSTGRESQL_15": { "SchemaNameTemplate": "SCHEMA", "ConvertProceduresToFunction": true, "UseCitextForAllStringDatatypes": true }, "MSSQL_TO_POSTGRESQL_14": { "SchemaNameTemplate": "SCHEMA", "ConvertProceduresToFunction": true, "UseCitextForAllStringDatatypes": true }, "MSSQL_TO_POSTGRESQL": { "SchemaNameTemplate": "SCHEMA", "ConvertProceduresToFunction": true, "UseCitextForAllStringDatatypes": true } }