Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
SQL Server ke pengaturan konversi PostgreSQL
Pengaturan berikut berlaku ketika sumbernya adalah Microsoft SQL Server dan targetnya adalah Amazon RDS for PostgreSQL atau Amazon Aurora PostgreSQL. Anda dapat mengonfigurasi pengaturan ini menggunakan Konsol Manajemen AWS atau operasi ModifyConversionConfigurationAPI.
Topik ini mencakup pengaturan khusus untuk jalur konversi SQL Server ke PostgreSQL. Selain pengaturan ini, Konversi Skema DMS menyediakan pengaturan yang berlaku untuk semua pasangan sumber dan target, seperti tingkat keparahan untuk komentar item tindakan di SQL yang dikonversi dan opsi untuk menggunakan AI generatif untuk konversi. Untuk pengaturan tersebut, lihatPengaturan konversi umum.
Saat Anda menggunakan API atau AWS CLI, tentukan pengaturan jalur konversi di bawah nama bagianMSSQL_TO_POSTGRESQL,MSSQL_TO_POSTGRESQL_14, atau. MSSQL_TO_POSTGRESQL_15 Ketiga bagian berversi menerima kunci yang sama. Untuk menemukan nama bagian mana yang digunakan proyek Anda, panggil DescribeConversionConfigurationdulu dan perbarui hanya bagian yang ada dalam respons.
Setiap pengaturan menunjukkan Konsol Manajemen AWS label diikuti oleh API dan nama parameter AWS CLI dalam tanda kurung. Gunakan nama parameter saat mengonfigurasi pengaturan dengan API atau AWS CLI.
Pengaturan metadata
Pengaturan yang mengontrol bagaimana metadata SQL Server sumber — nama objek, struktur skema, dan definisi indeks — ditangani selama konversi.
- Perlakukan nama objek database sumber sebagai case sensitive (
CaseSensitivityNames) -
Mengontrol bagaimana nama objek (tabel, kolom, prosedur, dan sebagainya) ditangani selama konversi.
-
true— Nama objek dipertahankan dalam kasus aslinya dan dibungkus dengan pengidentifikasi tanda kutip ganda (misalnya,"MyTable"). Gunakan ini saat aplikasi Anda mereferensikan objek menggunakan nama kasus campuran. -
false— Nama objek dilipat ke huruf kecil tanpa mengutip (misalnya,mytable). Ini cocok dengan perilaku pelipatan kasus PostgreSQL default.
Jenis: Boolean (
true|false)Default:
false -
- Hasilkan nama unik untuk indeks ()
UniqueIndexGeneration -
Mengontrol apakah Konversi Skema DMS menghasilkan nama indeks unik di seluruh skema PostgreSQL target. Di SQL Server, indeks dapat berbagi nama yang sama di berbagai tabel. Dalam PostgreSQL, semua nama indeks dalam skema harus unik.
-
true— Konversi Skema DMS menghasilkan nama unik untuk semua indeks, menambahkan akhiran jika diperlukan untuk menghindari tabrakan. Gunakan ini ketika skema sumber Anda memiliki indeks dengan nama yang sama pada tabel yang berbeda. -
false— Nama indeks dipertahankan apa adanya dari sumbernya. Jika nama indeks yang sama ada di beberapa tabel, penerapan ke PostgreSQL mungkin gagal dengan kesalahan nama duplikat.
Jenis: Boolean (
true|false)Default:
true -
- Konversi prosedur ke fungsi (
ConvertProceduresToFunction) -
Mengontrol apakah prosedur tersimpan dikonversi ke fungsi atau prosedur PostgreSQL.
-
false— Prosedur dikonversi ke objek PostgreSQL (membutuhkanPROCEDUREPostgreSQL 11 atau yang lebih baru). -
true— Prosedur yang mengembalikan set hasil dikonversi ke objek PostgreSQLFUNCTION. Gunakan ini saat aplikasi Anda membaca set hasil dari panggilan prosedur, atau saat menargetkan PostgreSQL 10 atau yang lebih lama.
Jenis: Boolean (
true|false)Default:
false -
- Buat rutinitas tambahan untuk menangani kumpulan data terbuka ()
OpenDatasetsProcedures -
Mengontrol bagaimana prosedur yang menyimpan output
EXECke dalam tabel dikonversi.-
false— Pola-pola ini dibiarkan sebagai item tindakan. -
true— Konversi Skema DMS membuat tabel sementara dan prosedur tambahan untuk meniru pola ini pada target.
Jenis: Boolean (
true|false)Default:
false -
- Nama skema ()
SchemaNameTemplate -
Mengontrol bagaimana nama skema PostgreSQL target dihasilkan dari konvensi penamaan dua bagian SQL Server (skema database +).
Label konsol API/CLI nilai Nama skema target yang dihasilkan SKEMA DB_ DB_SCHEMAdatabase_schema(misalnya,AdventureWorks_dbo). Gunakan saat memigrasikan beberapa database ke instance PostgreSQL yang sama untuk menghindari tabrakan nama.DB DBdatabase(sebagai contoh,AdventureWorks).SCHEMA SCHEMAschema(sebagai contoh,dbo). Gunakan saat memigrasi satu database dan Anda ingin membersihkan nama skema tanpa awalan database.Jenis: String (enum)
Default:
DB_SCHEMA
Pengaturan kode SQL
Pengaturan yang mengontrol bagaimana kode SQL Server — pengidentifikasi, parameter, tipe data, dan fungsi yang tidak didukung — ditangani selama konversi.
- Simpan nama objek dalam kasus yang sama (
AvoidCastingToLowerCase) -
Mengontrol apakah Konversi Skema DMS menambahkan
LOWER()cast otomatis di sekitar pengidentifikasi dalam kode yang dikonversi.-
false— Konversi Skema DMS menambahkanLOWER()gips jika diperlukan untuk menormalkan perbandingan kasus. -
true- Tidak adaLOWER()gips otomatis yang ditambahkan. Gunakan ini ketika database PostgreSQL Anda menggunakan ekstensi atau pemeriksaancitextcase-insensitive untuk menangani perbandingan secara native.
Jenis: Boolean (
true|false)Default:
falsecatatan
Pengaturan ini tidak berpengaruh saat
UseCitextForAllStringDatatypesdiaktifkan. Ketika semua tipe string dipetakanCITEXT, perbandingan case-insensitive ditangani secara native oleh tipe itu sendiri, jadi tidak adaLOWER()cast yang dihasilkan terlepas dari pengaturan ini. -
- Simpan nama parameter asli (
KeepOriginalParameterManes) -
Mengontrol apakah nama parameter asli dari T-SQL rutinitas dipertahankan dalam tanda tangan rutin PostgreSQL yang dikonversi.
-
false— Parameter dapat diganti namanya untuk menghindari konflik dengan kata-kata cadangan PostgreSQL atau konvensi penamaan. -
true— Nama parameter asli disimpan kata demi kata. Gunakan ini ketika aplikasi Anda memanggil rutinitas menggunakan sintaks parameter bernama (misalnya,my_proc(param_name => value)).
Jenis: Boolean (
true|false)Default:
falsecatatan
Nama parameter API adalah
KeepOriginalParameterManes(diakhiri dengan Surai, bukan Nama). Gunakan ejaan yang tepat ini saat memanggil API atau AWS CLI. Menggunakan tidakKeepOriginalParameterNamesakan berhasil. -
- Gunakan CITEXT untuk semua tipe data string ()
UseCitextForAllStringDatatypes -
Mengontrol tipe data target untuk semua kolom karakter dan parameter.
-
false— Jenis karakter (CHAR,,VARCHARNCHAR,NVARCHAR) dipetakan ke jenis PostgreSQL yang sesuai. -
true— Semua tipe karakter dipetakan keCITEXT(teks case-insensitive). Gunakan ini saat bermigrasi dari pemeriksaan SQL Server yang tidak peka huruf besar/kecil dan Anda ingin mempertahankan perilaku itu di PostgreSQL tanpa mengubah kueri.
Jenis: Boolean (
true|false)Default:
falsecatatan
Ketika pengaturan ini diaktifkan, Konversi Skema DMS secara otomatis menambahkan
CREATE EXTENSION IF NOT EXISTS citext;ke skrip skema yang dikonversi (baik saat menerapkan ke target dan saat menyimpan ke file). Namun,citextmodul harus tersedia di database PostgreSQL target Anda sebelum Anda menerapkan skema yang dikonversi.Ketika
UseCitextForAllStringDatatypesdiaktifkan, nama objek Keep dalam setelan case (AvoidCastingToLowerCase) yang sama tidak berpengaruh, karenaCITEXTmenangani perbandingan case-insensitive secara native. -
- Ubah objek bawaan yang tidak didukung menjadi objek rintisan ()
ConvUnsupportedBuiltinsToStubs -
Mengontrol apa yang terjadi ketika Konversi Skema DMS menemukan fungsi T-SQL bawaan yang tidak memiliki ekuivalen PostgreSQL langsung.
-
false— Fungsi yang tidak didukung dibiarkan sebagai item tindakan dalam laporan penilaian. Objek yang dikonversi ditandai sebagai membutuhkan tinjauan manual. -
true— Fungsi yang tidak didukung diganti dengan fungsi rintisan yang memiliki tanda tangan yang sama tetapi menimbulkan kesalahan runtime. Objek yang dikonversi berhasil dikompilasi, memungkinkan Anda menerapkan dan menguji skema lainnya sebelum menangani masing-masing potongan. Fungsi rintisan menghasilkan masalah migrasi 7822.
Jenis: Boolean (
true|false)Default:
false -
- Buat objek rintisan dalam skema terpisah ()
CreateStubsInSeparateSchema -
Kontrol tempat objek rintisan ditempatkan saat
ConvUnsupportedBuiltinsToStubsdiaktifkan.-
false— Objek rintisan dibuat dalam skema yang sama dengan objek pemanggilan. -
true— Objek rintisan ditempatkan dalamaws_sqlserver_stubskema khusus pada target. Gunakan ini untuk menjaga kode rintisan terisolasi dari objek aplikasi yang dikonversi.
Jenis: Boolean (
true|false)Default:
false -
Contoh: mengkonfigurasi SQL Server ke pengaturan PostgreSQL
Contoh berikut menetapkanSchemaNameTemplate,ConvertProceduresToFunction, danUseCitextForAllStringDatatypes. Terapkan pengaturan yang sama untuk setiap nama bagian yang digunakan proyek Anda (periksa output DescribeConversionConfigurationterlebih dahulu).
{ "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 } }