Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Configuración de conversión de SQL Server a PostgreSQL
La siguiente configuración se aplica cuando el origen es Microsoft SQL Server y el destino es Amazon RDS for PostgreSQL o Amazon Aurora PostgreSQL. Puede configurar estos ajustes mediante la operación o la Consola de administración de AWS API. ModifyConversionConfiguration
En este tema se describe la configuración específica de la ruta de conversión de SQL Server a PostgreSQL. Además de estos ajustes, la conversión de esquemas de DMS proporciona ajustes que se aplican a todos los pares de origen y destino, como el nivel de gravedad de los comentarios sobre los elementos de acción en el SQL convertido y la opción de utilizar la IA generativa para la conversión. Para conocer esos ajustes, consulte. Ajustes de conversión habituales
Cuando utilice la API o la AWS CLI, especifique la configuración de la ruta de conversión en los nombres de las secciones MSSQL_TO_POSTGRESQLMSSQL_TO_POSTGRESQL_14, oMSSQL_TO_POSTGRESQL_15. Las tres secciones versionadas aceptan las mismas claves. Para saber qué nombres de sección usa tu proyecto, llama DescribeConversionConfigurationprimero y actualiza solo las secciones presentes en la respuesta.
Cada configuración muestra la Consola de administración de AWS etiqueta seguida del nombre del parámetro de la API y la AWS CLI entre paréntesis. Utilice el nombre del parámetro al configurar los ajustes con la API o la AWS CLI.
Configuración de metadatos
Configuración que controla el modo en que se gestionan los metadatos de origen de SQL Server (nombres de objetos, estructura del esquema y definiciones de índices) durante la conversión.
- Trate los nombres de los objetos de la base de datos fuente distinguiendo mayúsculas y minúsculas (
CaseSensitivityNames) -
Controla cómo se gestionan los nombres de los objetos (tablas, columnas, procedimientos, etc.) durante la conversión.
-
true— Los nombres de los objetos se conservan en sus mayúsculas y minúsculas originales y se incluyen entre identificadores entre comillas dobles (por ejemplo,"MyTable"). Utilícelo cuando la aplicación haga referencia a objetos con nombres que mezclan mayúsculas y minúsculas. -
false— Los nombres de los objetos se doblan en minúsculas sin comillas (por ejemplo,).mytableEsto coincide con el comportamiento predeterminado de plegado de mayúsculas y minúsculas de PostgreSQL.
Tipo: booleano (|)
truefalseValor predeterminado:
false -
- Genera nombres únicos para los índices ()
UniqueIndexGeneration -
Controla si DMS Schema Conversion genera nombres de índice únicos en todo el esquema PostgreSQL de destino. En SQL Server, los índices pueden compartir el mismo nombre en distintas tablas. En PostgreSQL, todos los nombres de índice de un esquema deben ser únicos.
-
true— La conversión de esquemas de DMS genera nombres únicos para todos los índices y añade un sufijo cuando es necesario para evitar colisiones. Úselo cuando su esquema de origen tenga índices con el mismo nombre en tablas diferentes. -
false— Los nombres de los índices se conservan tal cual de la fuente. Si existe el mismo nombre de índice en varias tablas, es posible que la implementación en PostgreSQL no se realice correctamente y se produzca un error de nombre duplicado.
Tipo: booleano (|)
truefalseValor predeterminado:
true -
- Convierte procedimientos en funciones ()
ConvertProceduresToFunction -
Controla si los procedimientos almacenados se convierten en funciones o procedimientos de PostgreSQL.
-
false— Los procedimientos se convierten en objetos dePROCEDUREPostgreSQL (requiere PostgreSQL 11 o posterior). -
true— Los procedimientos que devuelven un conjunto de resultados se convierten en objetosFUNCTIONPostgreSQL. Úselo cuando la aplicación lea un conjunto de resultados de una llamada a un procedimiento o cuando se dirija a PostgreSQL 10 o versiones anteriores.
Tipo: booleano (|)
truefalseValor predeterminado:
false -
- Cree rutinas adicionales para gestionar conjuntos de datos abiertos ()
OpenDatasetsProcedures -
Controla cómo se convierten los procedimientos que almacenan la salida de
EXECen una tabla.-
false— Estos patrones se dejan como elementos de acción. -
true— La conversión de esquemas DMS crea tablas temporales y un procedimiento adicional para emular este patrón en el objetivo.
Tipo: booleano (|)
truefalseValor predeterminado:
false -
- Nombres de esquema ()
SchemaNameTemplate -
Controla cómo se genera el nombre del esquema PostgreSQL de destino a partir de la convención de nomenclatura en dos partes de SQL Server (base de datos + esquema).
Etiqueta de consola API/CLI valor Nombre del esquema de destino generado DB_SCHEMA DB_SCHEMAdatabase_schema(por ejemplo,AdventureWorks_dbo). Úselo al migrar varias bases de datos a la misma instancia de PostgreSQL para evitar colisiones de nombres.BASE DE DATOS DBdatabase(por ejemplo,AdventureWorks).SCHEMA SCHEMAschema(por ejemplo,dbo). Úselo al migrar una única base de datos y desee nombres de esquema limpios sin un prefijo de base de datos.Tipo: cadena (enumeración)
Valor predeterminado:
DB_SCHEMA
Configuración del código SQL
Configuración que controla el modo en que se gestiona el código de SQL Server (identificadores, parámetros, tipos de datos y funciones no compatibles) durante la conversión.
- Mantenga los nombres de los objetos en mayúsculas y minúsculas ()
AvoidCastingToLowerCase -
Controla si la conversión de esquemas de DMS añade
LOWER()conversiones automáticas en torno a los identificadores del código convertido.-
false— La conversión de esquemas de DMS añade versionesLOWER()cuando es necesario para normalizar las comparaciones de casos. -
true— No se añadenLOWER()moldes automáticos. Úselo cuando su base de datos PostgreSQL utilice la extensión o una intercalación que no distinga mayúsculas de minúsculas para gestionarcitextlas comparaciones de forma nativa.
Tipo: booleano (|)
truefalseValor predeterminado:
falsenota
Esta configuración no tiene ningún efecto cuando
UseCitextForAllStringDatatypesestá habilitada. Cuando se asignan todos los tipos de cadenasCITEXT, la comparación que no distingue entre mayúsculas y minúsculas es gestionada de forma nativa por el propio tipo, por lo que no se generanLOWER()conversiones independientemente de esta configuración. -
- Conserve los nombres de los parámetros originales ()
KeepOriginalParameterManes -
Controla si los nombres de los parámetros originales de T-SQL las rutinas se conservan en la firma de rutina de PostgreSQL convertida.
-
false— Se puede cambiar el nombre de los parámetros para evitar conflictos con las palabras reservadas o las convenciones de nomenclatura de PostgreSQL. -
true— Los nombres originales de los parámetros se mantienen textualmente. Úselo cuando la aplicación llame a rutinas mediante la sintaxis de parámetros con nombre asignado (por ejemplo,my_proc(param_name => value)).
Tipo: booleano (|)
truefalseValor predeterminado:
falsenota
El nombre del parámetro de la API es
KeepOriginalParameterManes(termina en Manes, no en nombres). Use esta ortografía exacta cuando llame a la API o a la AWS CLI. El uso noKeepOriginalParameterNamesfuncionará. -
- Utilice CITEXT para todos los tipos de datos de cadenas ()
UseCitextForAllStringDatatypes -
Controla el tipo de datos de destino para todas las columnas y parámetros de caracteres.
-
false— Los tipos de caracteres (CHAR,VARCHAR,NCHAR,NVARCHAR) se asignan a los tipos de PostgreSQL correspondientes. -
true— Todos los tipos de caracteres están mapeados aCITEXT(texto que no distingue mayúsculas de minúsculas). Úselo cuando migre desde una intercalación de SQL Server que no distinga mayúsculas de minúsculas y desee conservar ese comportamiento en PostgreSQL sin modificar las consultas.
Tipo: booleano (|)
truefalseValor predeterminado:
falsenota
Cuando esta configuración está habilitada, la conversión de esquemas de DMS se agrega automáticamente
CREATE EXTENSION IF NOT EXISTS citext;a los scripts de esquema convertidos (tanto al aplicarlos al destino como al guardarlos en un archivo). Sin embargo, elcitextmódulo debe estar disponible en la base de datos PostgreSQL de destino antes de aplicar el esquema convertido.Cuando
UseCitextForAllStringDatatypesestá habilitada, la opción Mantener los nombres de los objetos en mayúsculas y minúsculas (AvoidCastingToLowerCase) no tiene ningún efecto, ya queCITEXTgestiona la comparación que no distingue entre mayúsculas y minúsculas de forma nativa. -
- Convierte los objetos integrados no compatibles en objetos auxiliares ()
ConvUnsupportedBuiltinsToStubs -
Controla lo que ocurre cuando la conversión de esquemas de DMS encuentra una función T-SQL integrada que no tiene un equivalente directo en PostgreSQL.
-
false— La función no compatible se deja como elemento de acción en el informe de evaluación. El objeto convertido se marca como objeto que requiere revisión manual. -
true— La función no compatible se sustituye por una función auxiliar que tiene la misma firma pero genera un error de tiempo de ejecución. El objeto convertido se compila correctamente, lo que permite implementar y probar el resto del esquema antes de abordar los códigos auxiliares individuales. Las funciones auxiliares generan el problema de migración 7822.
Tipo: booleano (|)
truefalseValor predeterminado:
false -
- Cree objetos auxiliares en un esquema separado ()
CreateStubsInSeparateSchema -
Controla dónde se colocan los objetos auxiliares cuando
ConvUnsupportedBuiltinsToStubsestá activado.-
false— Los objetos auxiliares se crean en el mismo esquema que los objetos de llamada. -
true— Los objetos auxiliares se colocan en unaws_sqlserver_stubesquema específico en el destino. Úselo para mantener el código auxiliar aislado de los objetos de la aplicación convertidos.
Tipo: booleano (|)
truefalseValor predeterminado:
false -
Ejemplo: configurar SQL Server con los ajustes de PostgreSQL
El siguiente ejemplo establece SchemaNameTemplateConvertProceduresToFunction, y. UseCitextForAllStringDatatypes Aplica la misma configuración a cada nombre de sección que utilice tu proyecto (comprueba DescribeConversionConfigurationprimero el resultado).
{ "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 } }