Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Einstellungen für die Konvertierung von SQL Server in PostgreSQL
Die folgenden Einstellungen gelten, wenn die Quelle Microsoft SQL Server und das Ziel Amazon RDS for PostgreSQL oder Amazon Aurora PostgreSQL ist. Sie können diese Einstellungen mithilfe der AWS Management Console oder der API-Operation konfigurieren. ModifyConversionConfiguration
In diesem Thema werden Einstellungen behandelt, die für den Konvertierungspfad von SQL Server zu PostgreSQL spezifisch sind. Zusätzlich zu diesen Einstellungen bietet die DMS-Schemakonvertierung Einstellungen, die für alle Quell- und Zielpaare gelten, z. B. den Schweregrad für Kommentare zu Aktionselementen in konvertiertem SQL und die Option, generative KI für die Konvertierung zu verwenden. Informationen zu diesen Einstellungen finden Sie unter. Allgemeine Konvertierungseinstellungen
Wenn Sie die API oder AWS CLI verwenden, geben Sie die Einstellungen für den Konvertierungspfad unter den Abschnittsnamen MSSQL_TO_POSTGRESQLMSSQL_TO_POSTGRESQL_14, oder anMSSQL_TO_POSTGRESQL_15. Alle drei versionierten Abschnitte akzeptieren dieselben Schlüssel. Um herauszufinden, welche Abschnittsnamen Ihr Projekt verwendet, rufen Sie DescribeConversionConfigurationzuerst an und aktualisieren Sie nur die Abschnitte, die in der Antwort enthalten sind.
Jede Einstellung zeigt das AWS Management Console Label gefolgt vom API- und AWS CLI-Parameternamen in Klammern. Verwenden Sie den Parameternamen, wenn Sie Einstellungen mit der API oder AWS CLI konfigurieren.
Einstellungen für Metadaten
Einstellungen, die steuern, wie die SQL Server-Quellmetadaten — Objektnamen, Schemastruktur und Indexdefinitionen — während der Konvertierung behandelt werden.
- Behandeln Sie Objektnamen in der Quelldatenbank so, dass Groß- und Kleinschreibung beachtet wird (
CaseSensitivityNames) -
Steuert, wie Objektnamen (Tabellen, Spalten, Prozeduren usw.) bei der Konvertierung behandelt werden.
-
true— Objektnamen werden in ihrer ursprünglichen Groß- und Kleinschreibung beibehalten und in doppelte Anführungszeichen gesetzt (z. B."MyTable"). Verwenden Sie diese Option, wenn Ihre Anwendung auf Objekte verweist und dabei Namen mit gemischter Groß- und Kleinschreibung verwendet. -
false— Objektnamen werden ohne Anführungszeichen in Kleinbuchstaben gefaltet (zum Beispiel).mytableDies entspricht dem Standardverhalten von PostgreSQL zur Groß- und Kleinschreibung.
Typ: Boolean (|)
truefalseStandardwert:
false -
- Generieren Sie eindeutige Namen für Indizes ()
UniqueIndexGeneration -
Steuert, ob die DMS-Schemakonvertierung eindeutige Indexnamen im gesamten PostgreSQL-Zielschema generiert. In SQL Server können Indizes in verschiedenen Tabellen denselben Namen verwenden. In PostgreSQL müssen alle Indexnamen innerhalb eines Schemas eindeutig sein.
-
true— Die DMS-Schemakonvertierung generiert eindeutige Namen für alle Indizes und fügt bei Bedarf ein Suffix an, um Kollisionen zu vermeiden. Verwenden Sie dies, wenn Ihr Quellschema Indizes mit demselben Namen in verschiedenen Tabellen enthält. -
false— Indexnamen werden unverändert aus der Quelle beibehalten. Wenn derselbe Indexname in mehreren Tabellen vorhanden ist, schlägt die Bereitstellung in PostgreSQL möglicherweise mit einem doppelten Namensfehler fehl.
Typ: Boolean (|)
truefalseStandardwert:
true -
- Konvertiert Prozeduren in Funktionen ()
ConvertProceduresToFunction -
Steuert, ob gespeicherte Prozeduren in PostgreSQL-Funktionen oder -Prozeduren konvertiert werden.
-
false— Prozeduren werden inPROCEDUREPostgreSQL-Objekte konvertiert (erfordert PostgreSQL 11 oder höher). -
true— Prozeduren, die eine Ergebnismenge zurückgeben, werden in PostgreSQL-ObjekteFUNCTIONkonvertiert. Verwenden Sie diese Option, wenn Ihre Anwendung eine Ergebnismenge aus einem Prozeduraufruf liest oder wenn Sie auf PostgreSQL 10 oder früher abzielen.
Typ: Boolean (|)
truefalseStandardwert:
false -
- Erstellen Sie zusätzliche Routinen für den Umgang mit offenen Datensätzen ()
OpenDatasetsProcedures -
Steuert, wie Prozeduren, die die Ausgabe von
EXECin eine Tabelle speichern, konvertiert werden.-
false— Diese Muster bleiben als Aktionspunkte übrig. -
true— Die DMS-Schemakonvertierung erstellt temporäre Tabellen und ein zusätzliches Verfahren, um dieses Muster auf dem Ziel zu emulieren.
Typ: Boolean (|)
truefalseStandardwert:
false -
- Schemanamen ()
SchemaNameTemplate -
Steuert, wie der PostgreSQL-Zielschemaname anhand der zweiteiligen Benennungskonvention von SQL Server (Datenbank + Schema) generiert wird.
Bezeichnung der Konsole API/CLI Wert Name des generierten Zielschemas DB_SCHEMA DB_SCHEMAdatabase_schema(zum Beispiel).AdventureWorks_dboWird verwendet, wenn mehrere Datenbanken auf dieselbe PostgreSQL-Instanz migriert werden, um Namenskollisionen zu vermeiden.DB DBdatabase(zum BeispielAdventureWorks).SCHEMA SCHEMAschema(zum Beispieldbo). Wird verwendet, wenn Sie eine einzelne Datenbank migrieren und saubere Schemanamen ohne Datenbankpräfix wünschen.Typ: Zeichenfolge (Enum)
Standardwert:
DB_SCHEMA
SQL-Code-Einstellungen
Einstellungen, die steuern, wie SQL Server-Code — Bezeichner, Parameter, Datentypen und nicht unterstützte Funktionen — während der Konvertierung behandelt wird.
- Behalten Sie bei Objektnamen dieselbe Groß- und Kleinschreibung bei ()
AvoidCastingToLowerCase -
Steuert, ob bei der DMS-Schemakonvertierung automatische
LOWER()Umwandlungen von Bezeichnern im konvertierten Code hinzugefügt werden.-
false— Die DMS-Schemakonvertierung fügt bei BedarfLOWER()Umwandlungen hinzu, um Vergleiche zwischen Groß- und Kleinschreibung zu normalisieren. -
true— Es werden keine automatischenLOWER()Umwandlungen hinzugefügt. Verwenden Sie dies, wenn Ihre PostgreSQL-Datenbank diecitextErweiterung oder eine Sortierung ohne Berücksichtigung der Groß- und Kleinschreibung verwendet, um Vergleiche nativ zu verarbeiten.
Typ: Boolean (|)
truefalseStandardwert:
falseAnmerkung
Diese Einstellung hat keine Auswirkung, wenn sie aktiviert
UseCitextForAllStringDatatypesist. Wenn alle Zeichenfolgentypen zugeordnet sindCITEXT, erfolgt der Vergleich ohne Berücksichtigung der Groß- und Kleinschreibung nativ vom Typ selbst, sodass unabhängig von dieser Einstellung keineLOWER()Umwandlungen generiert werden. -
- Behalten Sie die ursprünglichen Parameternamen () bei
KeepOriginalParameterManes -
Steuert, ob die ursprünglichen Parameternamen aus T-SQL Routinen in der konvertierten PostgreSQL-Routinensignatur erhalten bleiben.
-
false— Parameter können umbenannt werden, um Konflikte mit reservierten PostgreSQL-Wörtern oder Namenskonventionen zu vermeiden. -
true— Die ursprünglichen Parameternamen werden wortwörtlich beibehalten. Verwenden Sie dies, wenn Ihre Anwendung Routinen aufruft, die die Syntax benannter Parameter verwenden (z. B.).my_proc(param_name => value)
Typ: Boolean (|)
truefalseStandardwert:
falseAnmerkung
Der API-Parametername lautet
KeepOriginalParameterManes(endet auf Manes, nicht auf Names). Verwenden Sie genau diese Schreibweise, wenn Sie die API oder AWS CLI aufrufen. Die VerwendungKeepOriginalParameterNameswird nicht funktionieren. -
- Verwenden Sie CITEXT für alle String-Datentypen ()
UseCitextForAllStringDatatypes -
Steuert den Zieldatentyp für alle Zeichenspalten und Parameter.
-
false— Zeichentypen (CHAR,,VARCHARNCHAR,NVARCHAR) werden den entsprechenden PostgreSQL-Typen zugeordnet. -
true— Alle Zeichentypen sind zugeordnet (Text ohne Berücksichtigung von Groß- und KleinschreibungCITEXT). Verwenden Sie dies, wenn Sie von einer SQL Server-Sortierung migrieren, bei der Groß- und Kleinschreibung nicht berücksichtigt wird, und Sie möchten dieses Verhalten in PostgreSQL beibehalten, ohne Abfragen zu ändern.
Typ: Boolean (|)
truefalseStandardwert:
falseAnmerkung
Wenn diese Einstellung aktiviert ist, fügt die DMS-Schemakonvertierung automatisch
CREATE EXTENSION IF NOT EXISTS citext;zu den konvertierten Schemaskripten hinzu (sowohl bei der Anwendung auf das Ziel als auch beim Speichern in einer Datei). DascitextModul muss jedoch in Ihrer PostgreSQL-Zieldatenbank verfügbar sein, bevor Sie das konvertierte Schema anwenden.Wenn diese Option aktiviert
UseCitextForAllStringDatatypesist, hat die Einstellung Objektnamen in derselben Groß-/Kleinschreibung beibehalten (AvoidCastingToLowerCase) keine Auswirkung, da Vergleiche ohne Berücksichtigung der Groß- und KleinschreibungCITEXTnativ verarbeitet werden. -
- Konvertiert nicht unterstützte integrierte Objekte in Stub-Objekte ()
ConvUnsupportedBuiltinsToStubs -
Steuert, was passiert, wenn die DMS-Schemakonvertierung auf eine T-SQL integrierte Funktion trifft, die kein direktes PostgreSQL-Äquivalent hat.
-
false— Die nicht unterstützte Funktion wird als Aktionspunkt im Bewertungsbericht belassen. Das konvertierte Objekt ist als manuell überprüfbar gekennzeichnet. -
true— Die nicht unterstützte Funktion wird durch eine Stub-Funktion ersetzt, die dieselbe Signatur hat, aber einen Laufzeitfehler auslöst. Das konvertierte Objekt wurde erfolgreich kompiliert, sodass Sie den Rest des Schemas bereitstellen und testen können, bevor Sie einzelne Stubs adressieren. Stub-Funktionen erzeugen das Migrationsproblem 7822.
Typ: Boolean (|)
truefalseStandardwert:
false -
- Erstellen Sie Stub-Objekte in einem separaten Schema ()
CreateStubsInSeparateSchema -
Steuert, wo Stub-Objekte platziert werden, wenn diese Option aktiviert
ConvUnsupportedBuiltinsToStubsist.-
false— Stub-Objekte werden in demselben Schema wie die aufrufenden Objekte erstellt. -
true— Stub-Objekte werden in einem speziellenaws_sqlserver_stubSchema auf dem Ziel platziert. Verwenden Sie dies, um den Stub-Code von den konvertierten Anwendungsobjekten zu isolieren.
Typ: Boolean (|)
truefalseStandardwert:
false -
Beispiel: Konfiguration von SQL Server für PostgreSQL-Einstellungen
Im folgenden Beispiel werden SchemaNameTemplateConvertProceduresToFunction, und festgelegt. UseCitextForAllStringDatatypes Wenden Sie dieselben Einstellungen auf jeden Abschnittsnamen an, den Ihr Projekt verwendet (überprüfen Sie DescribeConversionConfigurationzuerst die Ausgabe von).
{ "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 } }