Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Paramètres de conversion SQL Server vers PostgreSQL
Les paramètres suivants s'appliquent lorsque la source est Microsoft SQL Server et que la cible est Amazon RDS for PostgreSQL ou Amazon Aurora PostgreSQL. Vous pouvez configurer ces paramètres à l'aide de l'opération Console de gestion AWS ou de l'ModifyConversionConfigurationAPI.
Cette rubrique couvre les paramètres spécifiques au chemin de conversion de SQL Server vers PostgreSQL. Outre ces paramètres, DMS Schema Conversion fournit des paramètres qui s'appliquent à toutes les paires source et cible, tels que le niveau de gravité des commentaires relatifs aux actions dans le code SQL converti et la possibilité d'utiliser l'IA générative pour la conversion. Pour ces paramètres, voirParamètres de conversion courants.
Lorsque vous utilisez l'API ou la AWS CLI, spécifiez les paramètres du chemin de conversion sous les noms de section MSSQL_TO_POSTGRESQLMSSQL_TO_POSTGRESQL_14, ouMSSQL_TO_POSTGRESQL_15. Les trois sections versionnées acceptent les mêmes clés. Pour trouver les noms de section utilisés par votre projet, appelez d'DescribeConversionConfigurationabord et mettez à jour uniquement les sections présentes dans la réponse.
Chaque paramètre affiche l' Console de gestion AWS étiquette suivie du nom du paramètre de l'API et de la AWS CLI entre parenthèses. Utilisez le nom du paramètre lors de la configuration des paramètres à l'aide de l'API ou de la AWS CLI.
Paramètres des métadonnées
Paramètres qui contrôlent la façon dont les métadonnées source de SQL Server (noms d'objets, structure de schéma et définitions d'index) sont traitées lors de la conversion.
- Traitez les noms des objets de base de données source en distinguant majuscules et minuscules (
CaseSensitivityNames) -
Contrôle la façon dont les noms d'objets (tables, colonnes, procédures, etc.) sont traités lors de la conversion.
-
true— Les noms des objets sont conservés dans leur étui d'origine et placés entre guillemets doubles (par exemple,"MyTable"). Utilisez-le lorsque votre application fait référence à des objets en utilisant des noms composés de majuscules et minuscules. -
false— Les noms des objets sont pliés en minuscules sans guillemets (par exemple,mytable). Cela correspond au comportement de pliage par défaut de PostgreSQL.
Type : booléen (|)
truefalsePar défaut :
false -
- Générer des noms uniques pour les index ()
UniqueIndexGeneration -
Contrôle si la conversion de schéma DMS génère des noms d'index uniques dans le schéma PostgreSQL cible. Dans SQL Server, les index peuvent porter le même nom dans différentes tables. Dans PostgreSQL, tous les noms d'index d'un schéma doivent être uniques.
-
true— La conversion de schéma DMS génère des noms uniques pour tous les index, en ajoutant un suffixe si nécessaire pour éviter les collisions. Utilisez-le lorsque votre schéma source comporte des index portant le même nom sur différentes tables. -
false— Les noms d'index sont conservés tels quels depuis la source. Si le même nom d'index existe sur plusieurs tables, le déploiement sur PostgreSQL peut échouer avec une erreur de nom dupliqué.
Type : booléen (|)
truefalsePar défaut :
true -
- Convertir les procédures en fonctions (
ConvertProceduresToFunction) -
Contrôle si les procédures stockées sont converties en fonctions ou procédures PostgreSQL.
-
false— Les procédures sont converties en objets PostgreSQL (nécessitePROCEDUREPostgreSQL 11 ou version ultérieure). -
true— Les procédures qui renvoient un jeu de résultats sont converties en objetsFUNCTIONPostgreSQL. Utilisez-le lorsque votre application lit un jeu de résultats à partir d'un appel de procédure ou lorsque vous ciblez PostgreSQL 10 ou une version antérieure.
Type : booléen (|)
truefalsePar défaut :
false -
- Créez des routines supplémentaires pour gérer les ensembles de données ouverts ()
OpenDatasetsProcedures -
Contrôle la manière dont les procédures qui stockent la sortie de
EXECdans une table sont converties.-
false— Ces modèles sont laissés sous forme d'actions. -
true— La conversion de schéma DMS crée des tables temporaires et une procédure supplémentaire pour émuler ce modèle sur la cible.
Type : booléen (|)
truefalsePar défaut :
false -
- Noms de schéma (
SchemaNameTemplate) -
Contrôle la manière dont le nom du schéma PostgreSQL cible est généré à partir de la convention de dénomination en deux parties de SQL Server (base de données et schéma).
Étiquette de console API/CLI valeur Nom du schéma cible généré DB_SCHÉMA DB_SCHEMAdatabase_schema(par exemple,AdventureWorks_dbo). À utiliser lors de la migration de plusieurs bases de données vers la même instance PostgreSQL pour éviter les collisions de noms.DB DBdatabase(par exemple,AdventureWorks).SCHEMA (SCHÉMA) SCHEMAschema(par exemple,dbo). À utiliser lors de la migration d'une seule base de données et si vous souhaitez des noms de schéma propres sans préfixe de base de données.Type : Chaîne (enum)
Par défaut :
DB_SCHEMA
Paramètres du code SQL
Paramètres qui contrôlent la façon dont le code SQL Server (identifiants, paramètres, types de données et fonctions non prises en charge) est traité lors de la conversion.
- Conservez les noms des objets dans le même cas (
AvoidCastingToLowerCase) -
Contrôle si DMS Schema Conversion ajoute des conversions automatiques
LOWER()autour des identifiants dans le code converti.-
false— La conversion de schéma DMS ajoute desLOWER()moulages là où cela est nécessaire pour normaliser les comparaisons de cas. -
true— AucunLOWER()casting automatique n'est ajouté. Utilisez-le lorsque votre base de données PostgreSQL utilise l'extension ou un classement qui ne distingue pascitextles majuscules et minuscules pour gérer les comparaisons de manière native.
Type : booléen (|)
truefalsePar défaut :
falseNote
Ce paramètre n'a aucun effet lorsqu'il
UseCitextForAllStringDatatypesest activé. Lorsque tous les types de chaînes sont mappésCITEXT, la comparaison sans distinction majuscules/minuscules est gérée nativement par le type lui-même, de sorte qu'aucunLOWER()transtypage n'est généré quel que soit ce paramètre. -
- Conserver les noms de paramètres d'origine (
KeepOriginalParameterManes) -
Contrôle si les noms de paramètres d'origine des T-SQL routines sont conservés dans la signature de routine PostgreSQL convertie.
-
false— Les paramètres peuvent être renommés pour éviter tout conflit avec les mots réservés ou les conventions de dénomination de PostgreSQL. -
true— Les noms des paramètres d'origine sont conservés mot pour mot. Utilisez-le lorsque votre application appelle des routines en utilisant la syntaxe des paramètres nommés (par exemple,my_proc(param_name => value)).
Type : booléen (|)
truefalsePar défaut :
falseNote
Le nom du paramètre d'API est
KeepOriginalParameterManes(se terminant par Manes, et non par Names). Utilisez cette orthographe exacte lorsque vous appelez l'API ou la AWS CLI. L'utilisation neKeepOriginalParameterNamesfonctionnera pas. -
- Utiliser CITEXT pour tous les types de données de chaîne ()
UseCitextForAllStringDatatypes -
Contrôle le type de données cible pour toutes les colonnes de caractères et tous les paramètres.
-
false— Les types de caractères (CHARVARCHAR,,NCHAR,NVARCHAR) sont mappés aux types PostgreSQL correspondants. -
true— Tous les types de caractères sont mappés àCITEXT(texte qui ne distingue pas les majuscules des minuscules). Utilisez-le lors de la migration à partir d'un classement SQL Server qui ne distingue pas les majuscules et minuscules et vous souhaitez conserver ce comportement dans PostgreSQL sans modifier les requêtes.
Type : booléen (|)
truefalsePar défaut :
falseNote
Lorsque ce paramètre est activé, DMS Schema Conversion s'ajoute automatiquement
CREATE EXTENSION IF NOT EXISTS citext;aux scripts de schéma convertis (à la fois lors de l'application à la cible et lors de l'enregistrement dans un fichier). Toutefois, lecitextmodule doit être disponible dans votre base de données PostgreSQL cible pour que vous puissiez appliquer le schéma converti.Lorsqu'il
UseCitextForAllStringDatatypesest activé, le paramètre Conserver les noms d'objets dans le même cas (AvoidCastingToLowerCase) n'a aucun effet, car ilCITEXTgère les comparaisons sans distinction majuscules/majuscules en mode natif. -
- Convertissez les objets intégrés non pris en charge en objets stub ()
ConvUnsupportedBuiltinsToStubs -
Contrôle ce qui se passe lorsque la conversion du schéma DMS rencontre une fonction T-SQL intégrée qui n'a aucun équivalent direct avec PostgreSQL.
-
false— La fonction non prise en charge est laissée en tant qu'élément d'action dans le rapport d'évaluation. L'objet converti est marqué comme nécessitant une révision manuelle. -
true— La fonction non prise en charge est remplacée par une fonction stub qui possède la même signature mais génère une erreur d'exécution. L'objet converti se compile correctement, ce qui vous permet de déployer et de tester le reste du schéma avant de traiter les stubs individuels. Les fonctions Stub génèrent le problème de migration 7822.
Type : booléen (|)
truefalsePar défaut :
false -
- Création d'objets stub dans un schéma distinct ()
CreateStubsInSeparateSchema -
Contrôle l'endroit où les objets stub sont placés lorsque cette option
ConvUnsupportedBuiltinsToStubsest activée.-
false— Les objets stub sont créés selon le même schéma que les objets appelants. -
true— Les objets Stub sont placés dans unaws_sqlserver_stubschéma dédié sur la cible. Utilisez-le pour isoler le code stub des objets d'application convertis.
Type : booléen (|)
truefalsePar défaut :
false -
Exemple : configurer SQL Server selon les paramètres de PostgreSQL
L'exemple suivant définit SchemaNameTemplateConvertProceduresToFunction, etUseCitextForAllStringDatatypes. Appliquez les mêmes paramètres à chaque nom de section utilisé par votre projet (vérifiez d'DescribeConversionConfigurationabord le résultat).
{ "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 } }