翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
SQL Server から PostgreSQL へのコンバージョン設定
ソースが Microsoft SQL Server で、ターゲットが Amazon RDS for PostgreSQL または Amazon Aurora PostgreSQL の場合、次の設定が適用されます。これらの設定は、 AWS マネジメントコンソール または ModifyConversionConfiguration API オペレーションを使用して設定できます。
このトピックでは、SQL Server から PostgreSQL への変換パスに固有の設定について説明します。これらの設定に加えて、DMS Schema Conversion は、変換された SQL のアクション項目コメントの重要度レベルや変換に生成 AI を使用するオプションなど、すべてのソースとターゲットのペアに適用される設定を提供します。これらの設定については、「」を参照してください一般的な変換設定。
API または CLI AWS を使用する場合は、セクション名 MSSQL_TO_POSTGRESQL、、MSSQL_TO_POSTGRESQL_14または で変換パス設定を指定しますMSSQL_TO_POSTGRESQL_15。3 つのバージョン管理されたセクションはすべて同じキーを受け入れます。プロジェクトが使用するセクション名を確認するには、DescribeConversionConfigurationまず を呼び出し、レスポンスに含まれるセクションのみを更新します。
各設定には、 AWS マネジメントコンソール ラベルの後に API および CLI AWS パラメータ名が括弧内に表示されます。API または CLI で設定を構成するときは、 AWS パラメータ名を使用します。
メタデータ設定
オブジェクト名、スキーマ構造、インデックス定義などのソース SQL Server メタデータを変換中に処理する方法を制御する設定。
- ソースデータベースオブジェクト名を大文字と小文字を区別して扱う (
CaseSensitivityNames) -
変換中にオブジェクト名 (テーブル、列、プロシージャなど) を処理する方法を制御します。
-
true— オブジェクト名は元のケースに保持され、二重引用符識別子 ( など) でラップされます"MyTable"。これは、アプリケーションが大文字と小文字が混在する名前を使用してオブジェクトを参照する場合に使用します。 -
false— オブジェクト名は引用符なしで小文字に折りたたまれます (例:mytable)。これは、デフォルトの PostgreSQL ケースフォールディング動作と一致します。
タイプ: ブール値 (
true|false)デフォルト:
false -
- インデックスの一意の名前を生成する (
UniqueIndexGeneration) -
DMS Schema Conversion がターゲット PostgreSQL スキーマ全体で一意のインデックス名を生成するかどうかを制御します。SQL Server では、インデックスは異なるテーブル間で同じ名前を共有できます。PostgreSQL では、スキーマ内のすべてのインデックス名は一意である必要があります。
-
true— DMS Schema Conversion はすべてのインデックスに一意の名前を生成し、衝突を避けるために必要に応じてサフィックスを追加します。ソーススキーマに異なるテーブルに同じ名前のインデックスがある場合に使用します。 -
false— インデックス名はソースからそのまま保持されます。同じインデックス名が複数のテーブルに存在する場合、PostgreSQL へのデプロイが重複した名前エラーで失敗する可能性があります。
タイプ: ブール値 (
true|false)デフォルト:
true -
- プロシージャを関数に変換する (
ConvertProceduresToFunction) -
ストアドプロシージャを PostgreSQL 関数またはプロシージャに変換するかどうかを制御します。
-
false— プロシージャは PostgreSQLPROCEDUREオブジェクトに変換されます (PostgreSQL 11 以降が必要です)。 -
true— 結果セットを返すプロシージャは PostgreSQLFUNCTIONオブジェクトに変換されます。これは、アプリケーションがプロシージャ呼び出しから結果セットを読み取る場合、または PostgreSQL 10 以前をターゲットにする場合に使用します。
タイプ: ブール値 (
true|false)デフォルト:
false -
- オープンデータセットを処理する追加のルーチンを作成する (
OpenDatasetsProcedures) -
の出力をテーブル
EXECに保存する手順の変換方法を制御します。-
false— これらのパターンはアクション項目として残ります。 -
true— DMS Schema Conversion は、一時テーブルと、ターゲットでこのパターンをエミュレートする追加の手順を作成します。
タイプ: ブール値 (
true|false)デフォルト:
false -
- スキーマ名 (
SchemaNameTemplate) -
SQL Server の 2 つのパートからなる命名規則 (データベース + スキーマ) からターゲット PostgreSQL スキーマ名を生成する方法を制御します。
コンソールラベル API/CLI 値 生成されたターゲットスキーマ名 DB_SCHEMA DB_SCHEMAdatabase_schema(例:AdventureWorks_dbo)。名前の衝突を避けるために、複数のデータベースを同じ PostgreSQL インスタンスに移行するときに を使用します。DB DBデータベース( などAdventureWorks)。SCHEMA SCHEMAスキーマ(例:dbo)。単一のデータベースを移行し、データベースプレフィックスなしでスキーマ名をクリーンにする場合は、 を使用します。タイプ: 文字列 (列挙型)
デフォルト:
DB_SCHEMA
SQL コード設定
SQL Server コード - 識別子、パラメータ、データ型、サポートされていない関数 - を変換中に処理する方法を制御する設定。
- オブジェクト名を同じケースに保持する (
AvoidCastingToLowerCase) -
DMS Schema Conversion
LOWER()が変換されたコード内の識別子に自動キャストを追加するかどうかを制御します。-
false— DMS Schema ConversionLOWER()は、ケース比較を正規化するために必要に応じてキャストを追加します。 -
true— 自動LOWER()キャストは追加されません。これは、PostgreSQL データベースがcitext拡張機能または大文字と小文字を区別しない照合を使用して比較をネイティブに処理する場合に使用します。
タイプ: ブール値 (
true|false)デフォルト:
false注記
が有効な場合
UseCitextForAllStringDatatypes、この設定は効果がありません。すべての文字列タイプが にマッピングされるとCITEXT、大文字と小文字を区別しない比較はタイプ自体によってネイティブに処理されるため、この設定に関係なくLOWER()キャストは生成されません。 -
- 元のパラメータ名を保持する (
KeepOriginalParameterManes) -
T-SQL ルーチンの元のパラメータ名を変換された PostgreSQL ルーチン署名に保持するかどうかを制御します。
-
false— PostgreSQL 予約語または命名規則との競合を避けるために、パラメータの名前を変更できます。 -
true— 元のパラメータ名は逐語的に保持されます。これは、アプリケーションが名前付きパラメータ構文 ( など) を使用してルーチンを呼び出す場合に使用しますmy_proc(param_name => value)。
タイプ: ブール値 (
true|false)デフォルト:
false注記
API パラメータ名は
KeepOriginalParameterManes(名前ではなくマネで終わる) です。API または CLI AWS を呼び出すときは、この正確なスペルを使用します。KeepOriginalParameterNamesを使用すると機能しません。 -
- すべての文字列データ型に CITEXT を使用する (
UseCitextForAllStringDatatypes) -
すべての文字列とパラメータのターゲットデータ型を制御します。
-
false— 文字タイプ (CHAR、VARCHAR、NCHAR、NVARCHAR) は、対応する PostgreSQL タイプにマッピングされます。 -
true— すべての文字タイプがCITEXT(大文字と小文字を区別しないテキスト) にマッピングされます。大文字と小文字を区別しない SQL Server 照合から移行し、クエリを変更せずに PostgreSQL でその動作を維持する場合に使用します。
タイプ: ブール値 (
true|false)デフォルト:
false注記
この設定を有効にすると、DMS Schema Conversion は変換
CREATE EXTENSION IF NOT EXISTS citext;されたスキーマスクリプトに自動的に を追加します (ターゲットへの適用時とファイルへの保存時の両方)。ただし、変換されたスキーマを適用する前に、ターゲット PostgreSQL データベースでcitextモジュールを使用できる必要があります。UseCitextForAllStringDatatypesを有効にすると、 は大文字と小文字を区別しない比較をネイティブにCITEXT処理するため、同じケースのオブジェクト名を保持 (AvoidCastingToLowerCase) 設定は効果がありません。 -
- サポートされていない組み込みオブジェクトをスタブオブジェクトに変換する (
ConvUnsupportedBuiltinsToStubs) -
DMS Schema Conversion で、直接 PostgreSQL に相当するものがない T-SQL 組み込み関数が発生した場合の動作を制御します。
-
false— サポートされていない関数は、評価レポートのアクション項目として残ります。変換されたオブジェクトは、手動レビューが必要なものとしてマークされます。 -
true— サポートされていない関数は、同じ署名を持つスタブ関数に置き換えられますが、ランタイムエラーが発生します。変換されたオブジェクトは正常にコンパイルされ、個々のスタブに対処する前に残りのスキーマをデプロイしてテストできます。スタブ関数は移行の問題 7822 を生成します。
タイプ: ブール値 (
true|false)デフォルト:
false -
- 別のスキーマにスタブオブジェクトを作成する (
CreateStubsInSeparateSchema) -
ConvUnsupportedBuiltinsToStubsが有効になっている場合にスタブオブジェクトを配置する場所を制御します。-
false— スタブオブジェクトは、呼び出し元のオブジェクトと同じスキーマに作成されます。 -
true— スタブオブジェクトはターゲット上の専用aws_sqlserver_stubスキーマに配置されます。これを使用して、変換されたアプリケーションオブジェクトからスタブコードを分離します。
タイプ: ブール値 (
true|false)デフォルト:
false -
例: SQL Server から PostgreSQL への設定を構成する
次の例ではSchemaNameTemplate、、ConvertProceduresToFunction、 を設定しますUseCitextForAllStringDatatypes。プロジェクトで使用する各セクション名に同じ設定を適用します (DescribeConversionConfiguration最初に の出力を確認します)。
{ "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 } }