View a markdown version of this page

Impostazioni di conversione da SQL Server a PostgreSQL - AWS Database Migration Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Impostazioni di conversione da SQL Server a PostgreSQL

Le seguenti impostazioni si applicano quando l'origine è Microsoft SQL Server e la destinazione è Amazon RDS for PostgreSQL o Amazon Aurora PostgreSQL. Puoi configurare queste impostazioni utilizzando l'operazione o l'API. Console di gestione AWS ModifyConversionConfiguration

Questo argomento tratta le impostazioni specifiche del percorso di conversione da SQL Server a PostgreSQL. Oltre a queste impostazioni, DMS Schema Conversion fornisce impostazioni che si applicano a tutte le coppie di origine e destinazione, come il livello di gravità per i commenti sugli elementi di azione in SQL convertito e la possibilità di utilizzare l'intelligenza artificiale generativa per la conversione. Per queste impostazioni, vedi. Impostazioni di conversione comuni

Quando utilizzi l'API o la AWS CLI, specifica le impostazioni del percorso di conversione nei nomi delle sezioni MSSQL_TO_POSTGRESQLMSSQL_TO_POSTGRESQL_14, oppure. MSSQL_TO_POSTGRESQL_15 Tutte e tre le sezioni con versione accettano le stesse chiavi. Per scoprire quali nomi di sezione vengono utilizzati dal tuo progetto, chiama DescribeConversionConfigurationprima e aggiorna solo le sezioni presenti nella risposta.

Ogni impostazione mostra l' Console di gestione AWS etichetta seguita dal nome dei parametri API e AWS CLI tra parentesi. Utilizza il nome del parametro durante la configurazione delle impostazioni con l'API o la AWS CLI.

Impostazioni dei metadati

Impostazioni che controllano il modo in cui i metadati di origine di SQL Server, ovvero nomi degli oggetti, struttura dello schema e definizioni degli indici, vengono gestiti durante la conversione.

Tratta i nomi degli oggetti del database di origine facendo distinzione tra maiuscole e minuscole CaseSensitivityNames

Controlla come vengono gestiti i nomi degli oggetti (tabelle, colonne, procedure e così via) durante la conversione.

  • true— I nomi degli oggetti vengono conservati nella loro versione originale e racchiusi in identificatori tra virgolette doppie (ad esempio,). "MyTable" Utilizzatelo quando l'applicazione fa riferimento a oggetti utilizzando nomi composti da maiuscole e minuscole.

  • false— I nomi degli oggetti vengono piegati in minuscolo senza virgolette (ad esempio,). mytable Ciò corrisponde al comportamento predefinito di ripiegamento tra maiuscole e minuscole di PostgreSQL.

Tipo: Boolean (|) true false

Default: false

Genera nomi univoci per gli indici () UniqueIndexGeneration

Controlla se DMS Schema Conversion genera nomi di indice univoci nello schema PostgreSQL di destinazione. In SQL Server, gli indici possono condividere lo stesso nome su tabelle diverse. In PostgreSQL, tutti i nomi di indice all'interno di uno schema devono essere univoci.

  • true— DMS Schema Conversion genera nomi univoci per tutti gli indici, aggiungendo un suffisso ove necessario per evitare collisioni. Usalo quando lo schema di origine ha indici con lo stesso nome su tabelle diverse.

  • false— I nomi degli indici vengono conservati così come sono dall'origine. Se lo stesso nome di indice esiste su più tabelle, la distribuzione su PostgreSQL potrebbe non riuscire con un errore di nome duplicato.

Tipo: Boolean (|) true false

Default: true

Converti le procedure in funzioni () ConvertProceduresToFunction

Controlla se le stored procedure vengono convertite in funzioni o procedure PostgreSQL.

  • false— Le procedure vengono convertite in oggetti PostgreSQL (richiede PROCEDURE PostgreSQL 11 o versione successiva).

  • true— Le procedure che restituiscono un set di risultati vengono convertite in oggetti PostgreSQLFUNCTION. Usalo quando l'applicazione legge un set di risultati da una chiamata di procedura o quando ha come target PostgreSQL 10 o versioni precedenti.

Tipo: Boolean (|) true false

Default: false

Crea routine aggiuntive per gestire set di dati aperti () OpenDatasetsProcedures

Controlla come vengono convertite le procedure che memorizzano l'output di EXEC in una tabella.

  • false— Questi modelli vengono lasciati come elementi d'azione.

  • true— DMS Schema Conversion crea tabelle temporanee e una procedura aggiuntiva per emulare questo modello sulla destinazione.

Tipo: Boolean (|) true false

Default: false

Nomi degli schemi () SchemaNameTemplate

Controlla il modo in cui il nome dello schema PostgreSQL di destinazione viene generato dalla convenzione di denominazione in due parti di SQL Server (database + schema).

Etichetta della console API/CLI valore Nome dello schema di destinazione generato
DB_SCHEMA DB_SCHEMA database_ schema (ad esempio,AdventureWorks_dbo). Utilizzalo durante la migrazione di più database sulla stessa istanza PostgreSQL per evitare collisioni di nomi.
DB DB database (ad esempio, AdventureWorks).
SCHEMA SCHEMA schema (ad esempio, dbo). Utilizzalo per la migrazione di un singolo database e desideri nomi di schema puliti senza un prefisso del database.

Tipo: String (enum)

Default: DB_SCHEMA

Impostazioni del codice SQL

Impostazioni che controllano il modo in cui il codice di SQL Server (identificatori, parametri, tipi di dati e funzioni non supportate) viene gestito durante la conversione.

Mantieni i nomi degli oggetti nello stesso formato () AvoidCastingToLowerCase

Controlla se DMS Schema Conversion aggiunge LOWER() cast automatici attorno agli identificatori nel codice convertito.

  • false— DMS Schema Conversion aggiunge i LOWER() cast laddove necessario per normalizzare i confronti tra casi.

  • true— Non vengono aggiunti cast automaticiLOWER(). Usalo quando il tuo database PostgreSQL utilizza l'estensione o una collazione senza distinzione tra maiuscole e minuscole per gestire citext i confronti in modo nativo.

Tipotrue: false Boolean (|)

Default: false

Nota

Questa impostazione non ha effetto quando UseCitextForAllStringDatatypes è abilitata. Quando tutti i tipi di stringhe sono mappatiCITEXT, il confronto senza distinzione tra maiuscole e minuscole viene gestito in modo nativo dal tipo stesso, quindi non viene generato alcun LOWER() cast indipendentemente da questa impostazione.

KeepOriginalParameterManesMantieni i nomi dei parametri originali ()

Controlla se i nomi dei parametri originali T-SQL delle routine vengono conservati nella firma di routine PostgreSQL convertita.

  • false— I parametri possono essere rinominati per evitare conflitti con le parole riservate o le convenzioni di denominazione di PostgreSQL.

  • true— I nomi dei parametri originali vengono mantenuti alla lettera. Utilizzatelo quando l'applicazione richiama le routine utilizzando la sintassi dei parametri denominati (ad esempio,). my_proc(param_name => value)

Tipo: Boolean (|) true false

Default: false

Nota

Il nome del parametro API è KeepOriginalParameterManes (termina con Manes, non con Names). Usa questa ortografia esatta quando chiami l'API o la AWS CLI. L'utilizzo non KeepOriginalParameterNames funzionerà.

Utilizzate CITEXT per tutti i tipi di dati di tipo stringa () UseCitextForAllStringDatatypes

Controlla il tipo di dati di destinazione per tutte le colonne e i parametri di caratteri.

  • false— I tipi di caratteri (CHAR,VARCHAR,NCHAR,NVARCHAR) sono mappati ai tipi PostgreSQL corrispondenti.

  • true— Tutti i tipi di caratteri sono mappati su (testo senza distinzione tra maiuscole e minuscole). CITEXT Usalo quando esegui la migrazione da regole di confronto di SQL Server senza distinzione tra maiuscole e minuscole e desideri preservare quel comportamento in PostgreSQL senza modificare le query.

Tipo: true Boolean (|) false

Default: false

Nota

Quando questa impostazione è abilitata, DMS Schema Conversion aggiunge CREATE EXTENSION IF NOT EXISTS citext; automaticamente gli script dello schema convertito (sia quando si applica alla destinazione che quando si salva in un file). Tuttavia, il citext modulo deve essere disponibile nel database PostgreSQL di destinazione prima di applicare lo schema convertito.

Quando UseCitextForAllStringDatatypes è abilitata, l'impostazione Keep object names in the same case (AvoidCastingToLowerCase) non ha alcun effetto, perché CITEXT gestisce il confronto senza distinzione tra maiuscole e minuscole in modo nativo.

Converti oggetti incorporati non supportati in oggetti stub () ConvUnsupportedBuiltinsToStubs

Controlla cosa succede quando DMS Schema Conversion incontra una funzione T-SQL integrata che non ha un equivalente diretto in PostgreSQL.

  • false— La funzione non supportata viene lasciata come elemento d'azione nel rapporto di valutazione. L'oggetto convertito è contrassegnato come soggetto a revisione manuale.

  • true— La funzione non supportata viene sostituita da una funzione stub che ha la stessa firma ma genera un errore di runtime. L'oggetto convertito viene compilato correttamente, consentendo di distribuire e testare il resto dello schema prima di indirizzare i singoli stub. Le funzioni Stub generano il problema di migrazione 7822.

Tipo: Boolean (|) true false

Default: false

Crea oggetti stub in uno schema separato () CreateStubsInSeparateSchema

Controlla dove vengono posizionati gli oggetti stub quando ConvUnsupportedBuiltinsToStubs è abilitato.

  • false— Gli oggetti Stub vengono creati nello stesso schema degli oggetti chiamanti.

  • true— Gli oggetti Stub vengono inseriti in uno aws_sqlserver_stub schema dedicato sulla destinazione. Utilizzatelo per mantenere il codice stub isolato dagli oggetti dell'applicazione convertiti.

Tipo: Boolean (|) true false

Default: false

Esempio: configurare SQL Server per le impostazioni di PostgreSQL

L'esempio seguente impostaSchemaNameTemplate, eConvertProceduresToFunction. UseCitextForAllStringDatatypes Applica le stesse impostazioni a ogni nome di sezione utilizzato dal progetto (controlla DescribeConversionConfigurationprima l'output di).

{ "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 } }