本文へスキップ
IntoSQL ホーム

PostgreSQL を MariaDB に変換

pg_dump または pg_dumpall で作成したプレーン形式のダンプ (.sql または .sql.gz) をドロップすると、同じテーブル、キー、インデックス、データを持つ MariaDB スクリプトをダウンロードできます。MariaDB がそのまま保持できない値と、引き継がないオブジェクトは、すべてレポートに記載されます。

ファイル
sqlshop_2024_postgres.sqlサンプルファイル、6.2 KB
データベース

18 行を変換、修正 3 件、却下なし

表示

shop_2024_postgres.sql のテーブルPostgreSQL 18.6 のダンプ · pg_dump で作成 · utf8mb4

  • customers8 行2
    8 列
    idint not null
    nametext not null
    emailvarchar(768) not null
    countrychar(2) not null
    is_activetinyint(1) not null
    tagsjson not null
    signed_update
    created_atdatetime(6) not null
  • orders10 行1
    10 列
    idint not null
    customer_idint not null
    statusenum('pending','paid','shipped','cancelled') not null
    totaldecimal(10,2) not null
    itemssmallint not null
    ordered_atdatetime(6) not null
    shipped_atdatetime(6)
    notetext
    detailsjson
    deliveryvarchar(100)

未変換

  • ビュー paid_orders

これらはデータベースごとに独自の言語で書かれます。MariaDB 用に書き直してください。

-- Written by IntoSQL from a PostgreSQL dump. Load it with: mariadb --default-character-set=utf8mb4 <database> < <file>
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
SET UNIQUE_CHECKS = 0;
SET SQL_MODE = 'NO_AUTO_VALUE_ON_ZERO,ALLOW_INVALID_DATES';

CREATE TABLE `customers` (
  `id` int NOT NULL AUTO_INCREMENT,
  `name` text NOT NULL,
  `email` varchar(768) NOT NULL,
  `country` char(2) NOT NULL DEFAULT 'US',
  `is_active` tinyint(1) NOT NULL DEFAULT 1,
  `tags` json NOT NULL,
  `signed_up` date,
  `created_at` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  UNIQUE KEY `customers_email_key` (`email`),
  PRIMARY KEY (`id`)
) AUTO_INCREMENT=1001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='People who bought at least once';

CREATE TABLE `orders` (
  `id` int NOT NULL AUTO_INCREMENT,
  `customer_id` int NOT NULL,
  `status` enum('pending','paid','shipped','cancelled') NOT NULL DEFAULT 'pending',
  `total` decimal(10,2) NOT NULL,
  `items` smallint NOT NULL DEFAULT 1,
  `ordered_at` datetime(6) NOT NULL,
  `shipped_at` datetime(6),
  `note` text,
  `details` json,
  `delivery` varchar(100),
  PRIMARY KEY (`id`),
  KEY `idx_orders_customer` (`customer_id`),
  KEY `idx_orders_status_date` (`status`,`ordered_at`),
  CONSTRAINT `orders_total_check` CHECK (`total` >= (0)),
  CONSTRAINT `orders_customer_id_fkey` FOREIGN KEY (`customer_id`) REFERENCES `customers` (`id`)
) AUTO_INCREMENT=5001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

INSERT INTO `customers` (`id`,`name`,`email`,`country`,`is_active`,`tags`,`signed_up`,`created_at`) VALUES (1,'Ana Martínez','ana@example.com','MX',1,'["vip"]','2023-01-15','2023-01-15 10:24:00'),(2,'Zoë Müller','zoe@example.de','DE',1,'[]','2023-02-03','2023-02-03 08:11:42'),(3,'José Peña','jose@example.es','ES',0,'["wholesale","late payer"]','2023-03-21','2023-03-21 19:05:17'),(4,'李雷','lilei@example.cn','CN',1,'[]','2023-05-09','2023-05-09 02:40:00'),(5,'Noah O\'Brien','noah@example.ie','IE',1,'[]',NULL,'2023-06-30 14:00:00'),(6,'Amélie Laurent','amelie@example.fr','FR',1,'["vip"]','2024-01-02','2024-01-02 09:30:00'),(7,'Ravi Patel','ravi@example.in','IN',0,'[]','2024-02-29','2024-02-29 23:59:59'),(8,'Sofia Rossi 🌻','sofia@example.it','IT',1,'[]','2024-04-12','2024-04-12 12:12:12');
INSERT INTO `orders` (`id`,`customer_id`,`status`,`total`,`items`,`ordered_at`,`shipped_at`,`note`,`details`,`delivery`) VALUES (1,1,'shipped',129.90,3,'2024-03-01 10:00:00','2024-03-02 16:30:00',NULL,'{"gift": false}','1 day 06:30:00'),(2,2,'paid',54.00,1,'2024-03-02 11:15:00',NULL,'Gift wrap 🎁','{"gift": true, "wrap": "red"}',NULL),(3,1,'cancelled',12.50,1,'2024-03-03 09:45:00',NULL,'Customer changed their mind',NULL,NULL),(4,4,'shipped',980.00,12,'2024-03-05 02:10:00','2024-03-07 08:00:00','请小心轻放','{"fragile": true}','2 days 05:50:00'),(5,5,'pending',45.75,2,'2024-03-08 17:20:00',NULL,'Leave at the door; ring twice',NULL,NULL),(6,6,'shipped',310.40,5,'2024-03-10 13:00:00','2024-03-11 09:00:00','Fragile: "glass"','{"fragile": true}','20:00:00'),(7,8,'paid',76.20,2,'2024-03-11 18:45:00',NULL,NULL,NULL,NULL),(8,2,'shipped',19.99,1,'2024-03-12 08:00:00',NULL,'Shipped date set to infinity by an old import',NULL,NULL),(9,3,'shipped',64.00,2,'2024-03-14 15:30:00','2024-03-15 10:00:00','Two parcels','{"parcels": [1, 2]}','18:30:00'),(10,7,'paid',1499.00,1,'2024-03-15 21:05:00',NULL,'C:\\Users\\ravi\\invoice.pdf',NULL,NULL);

SET UNIQUE_CHECKS = 1;
SET FOREIGN_KEY_CHECKS = 1;

修正

  1. customers の "created_at" にはタイムゾーン付きの日時があります。MariaDB にはタイムゾーンを保つ型がないため、datetime(6) として UTC で保存します。
  2. customers の "tags" は text[] ですが、MariaDB にはないため、同じ値を持つ json にしました。
  3. orders の "delivery" は interval ですが、MariaDB にはないため、同じ値を持つ varchar(100) にしました。

確認が必要

  • 1 件のビュー、トリガー、ルーチン、イベントは変換されません。レポートにそれぞれ記載しています。 MariaDB で手動で作り直してください。
  • customers の "tags" のデフォルト値は MariaDB 用に書き換えられないため (a value its type can't hold)、列にデフォルト値はありません。 新しい行に必要なら、手動でデフォルト値を追加してください。
  • orders のインデックス idx_orders_details は MariaDB 用に書き換えられない式を使っているため (neither MySQL 5.7 nor MariaDB index an expression)、作成しません。 クエリに必要なら、手動でインデックスを作成してください。
  • orders の "shipped_at" にある 1 個の値は infinity のように MariaDB が保存できない日付のため、NULL にしました。 MariaDB が保存できるのは 1 年から 9999 年までで、infinity はありません。必要ならソースでその日付を置き換えてください。

ファイルはこのコンピューター上で変換され、アップロードされることはありません。

その他のサンプル:

PostgreSQL から MariaDB で変わること

各行はコンバーターが適用するルールです。ルールによってデータが変わったときにレポートに書かれる行も示します。

  • boolean

    tinyint(1)

    MariaDB の BOOLEAN は TINYINT(1) で、true は 1、false は 0 です。

  • varchar(n), char(n), text

    1024 文字までは varchar(n)、255 までは char(n)、それを超えると text

    テキストはすべての文字を utf8mb4 で保ちます。キーに含まれる列は、キーに収まる最大の varchar(768) までです。

  • numeric(p,s) past 65 digits or 30 decimals, and numeric values past what decimal(65,30) holds

    varchar

    MariaDB の decimal は 65 桁 (小数 30 桁) までです。それより大きな数はすべての桁を正確に保つためテキストにします。精度のない numeric は、値が収まれば decimal(65,30) になります。

    レポートの行: decimal_as_text

  • money

    decimal(19,2)

    MariaDB には money 型がありません。金額は、サーバーのロケールが付けた通貨記号を除いて数値として保ちます。

    レポートの行: type_replaced

  • interval

    PostgreSQL のテキストを持つ varchar(100)

    MariaDB の TIME は 838 時間までの期間を保持できますが、interval には月と日があります。テキストならすべての部分を保てます。

    レポートの行: type_replaced

  • arrays (integer[], text[]...)

    json 配列

    MariaDB には配列がありません。JSON 配列ならすべての要素と NULL を保ち、JSON 関数で読めます。

    レポートの行: type_replaced

  • ranges, geometric types, tsvector, xml, hstore, composite and extension types

    PostgreSQL のテキストを持つ longtext

    MariaDB には同等の型がないため、各値は PostgreSQL が書き出したテキストを保ちます。

    レポートの行: type_replaced

  • json, jsonb

    json

    JSON の値は同じです。jsonb のキーの順序と空白はサーバーによるものです。

  • timestamp

    datetime(p)

    タイムゾーンなしの timestamp は、datetime と同じく時計が示す時刻です。

  • timestamp with time zone

    UTC の datetime(p)

    MariaDB の TIMESTAMP は 2038 年までしか扱えないため、日時は UTC の datetime として保存します。ダンプのオフセットにかかわらず同じ時点です。

    レポートの行: moments_as_utc

  • time

    time(p)

    MariaDB の TIME は 24:00:00 を含め、1 日のすべての時刻を保持できます。

  • infinity, -infinity, BC dates and years past 9999

    NULL

    MariaDB が保存できるのは 1000 年から 9999 年までで、infinity はありません。それらの値は NULL になり、レポートで件数を示します。

    レポートの行: date_out_of_range

  • NaN and Infinity in numeric, real and double precision

    NULL

    MariaDB の数値には NaN や Infinity がないため、それらの値は NULL になり、レポートで件数を示します。

    レポートの行: invalid_value_null

  • NOT NULL columns with values that become NULL

    NOT NULL を削除

    値を NULL にする必要があった列は、NOT NULL を保てません。保つと読み込みが止まります。

    レポートの行: not_null_relaxed

  • enum types

    同じラベルの enum(...)

    MariaDB の ENUM はラベルを同じ順序で保ちます。

  • uuid, inet, cidr

    uuid は uuid、inet と cidr は varchar(43)

    MariaDB には uuid 型があります。アドレスはマスクを含めテキストを保ちます。

  • bytea

    blob、mediumblob、longblob。キー内では varbinary(3072)

    バイト列はバイト列のままです。

  • bit(n)

    64 までは bit(n)、それを超えると text

    64 ビットまでのビット列は、そのビットが表す数値になります。それより長いものは桁をそのまま保ちます。

  • citext and nondeterministic collations

    厳密な比較

    テーブルは utf8mb4_bin を使うため、PostgreSQL と同じくテキストを厳密に比較します。ソースで大文字と小文字を区別しなかった列は、その動作を失います。

    レポートの行: case_insensitive_collation

  • serial, identity

    AUTO_INCREMENT、最大の ID の後から継続

    主キーの先頭の列を採番します。カウンターはシーケンスの続きから進みます。

  • a second serial or identity column in a table

    普通の整数

    MariaDB が採番するのはテーブルごとに 1 列だけです。それ以外の列はカウンターなしで値を保ちます。

    レポートの行: counter_dropped

  • sequences not owned by a column

    次に払い出す値から始まる CREATE SEQUENCE

    MariaDB のシーケンスも同じように動作します。

  • generated columns

    ソースと同じ STORED の生成列

    MariaDB も同じ方法で計算します。

  • generated columns with functions MariaDB lacks

    普通の列

    MariaDB 用に書き換えられない式は、普通の列とレポートの 1 行になります。

    レポートの行: generated_not_translated

  • defaults with functions MariaDB lacks, and defaults from a sequence

    デフォルト値なし

    MariaDB 用に書き換えられないデフォルト値は含めず、レポートに記載します。

    レポートの行: default_not_translated

  • CHECK constraints

    変換して CREATE TABLE 内に記述

    MySQL 8.0.16 と MariaDB は適用します。MySQL 5.7 はチェックせずに保持します。

  • CHECK constraints with functions MariaDB lacks

    作成しない

    MariaDB 用に書き換えられないチェックは含めず、レポートに記載します。

    レポートの行: check_skipped

  • CHECK ... NOT VALID

    作成しない

    PostgreSQL は既存の行をチェックしていないため、違反している可能性があります。

    レポートの行: check_not_valid

  • gin, gist, brin and hash indexes, partial and expression indexes

    作成しない

    MariaDB にあるのは列全体に対する b-tree、全文、空間インデックスだけで、WHERE は使えません。

    レポートの行: index_skipped

  • foreign keys

    外部キー、FOREIGN_KEY_CHECKS=0 で読み込み

    行はどの順序でも読み込め、その後はキーが新しい行をチェックします。

  • foreign keys to tables the dump doesn't create

    作成しない

    キーは存在しないテーブルを参照できません。

    レポートの行: foreign_key_skipped

  • partitioned tables

    すべてのパーティションの行を持つ 1 つのテーブル

    行は同じです。必要なら MariaDB でもう一度テーブルをパーティション分割してください。

    レポートの行: partitions_dropped

  • schemas

    1 つのデータベース、テーブル名の先頭にスキーマ名

    MariaDB のスキーマはデータベースであり、1 つのデータベースに読み込むスクリプトでは作成できません。public のテーブルは名前を保ちます。

    レポートの行: schemas_merged

  • views, functions, procedures, triggers, rules, policies, extensions and types

    レポートに記載

    コードが PostgreSQL の言語で書かれているため、作り直せるよう一覧にします。

    レポートの行: not_converted_objects

  • dumps without CREATE TABLE (--data-only)

    値から読み取った型

    データのみのダンプには行しかないため、型は値から決まります。

    レポートの行: no_schema

  • expressions in INSERT values

    NULL

    データベースを実行しないコンバーターでは、これらを評価できません。

    レポートの行: expression_value

  • types IntoSQL doesn't know

    longtext

    テキストはどんな値も保持できます。読み込み後に型を変更してください。

    レポートの行: unknown_type

  • text that isn't valid in its encoding

    不正なバイトを置換文字に

    テキストは有効な utf8mb4 である必要があります。

    レポートの行: invalid_utf8_replaced

  • text decoded twice (ñ)

    そのままコピー

    ダンプにはまさにこの文字が含まれているため、そのままコピーし、レポートで指摘します。

    レポートの行: mojibake_suspected

PostgreSQL ではMariaDB ではレポートの行
booleantinyint(1)MariaDB の BOOLEAN は TINYINT(1) で、true は 1、false は 0 です。
varchar(n), char(n), text1024 文字までは varchar(n)、255 までは char(n)、それを超えると textテキストはすべての文字を utf8mb4 で保ちます。キーに含まれる列は、キーに収まる最大の varchar(768) までです。
numeric(p,s) past 65 digits or 30 decimals, and numeric values past what decimal(65,30) holdsvarcharMariaDB の decimal は 65 桁 (小数 30 桁) までです。それより大きな数はすべての桁を正確に保つためテキストにします。精度のない numeric は、値が収まれば decimal(65,30) になります。decimal_as_text
moneydecimal(19,2)MariaDB には money 型がありません。金額は、サーバーのロケールが付けた通貨記号を除いて数値として保ちます。type_replaced
intervalPostgreSQL のテキストを持つ varchar(100)MariaDB の TIME は 838 時間までの期間を保持できますが、interval には月と日があります。テキストならすべての部分を保てます。type_replaced
arrays (integer[], text[]...)json 配列MariaDB には配列がありません。JSON 配列ならすべての要素と NULL を保ち、JSON 関数で読めます。type_replaced
ranges, geometric types, tsvector, xml, hstore, composite and extension typesPostgreSQL のテキストを持つ longtextMariaDB には同等の型がないため、各値は PostgreSQL が書き出したテキストを保ちます。type_replaced
json, jsonbjsonJSON の値は同じです。jsonb のキーの順序と空白はサーバーによるものです。
timestampdatetime(p)タイムゾーンなしの timestamp は、datetime と同じく時計が示す時刻です。
timestamp with time zoneUTC の datetime(p)MariaDB の TIMESTAMP は 2038 年までしか扱えないため、日時は UTC の datetime として保存します。ダンプのオフセットにかかわらず同じ時点です。moments_as_utc
timetime(p)MariaDB の TIME は 24:00:00 を含め、1 日のすべての時刻を保持できます。
infinity, -infinity, BC dates and years past 9999NULLMariaDB が保存できるのは 1000 年から 9999 年までで、infinity はありません。それらの値は NULL になり、レポートで件数を示します。date_out_of_range
NaN and Infinity in numeric, real and double precisionNULLMariaDB の数値には NaN や Infinity がないため、それらの値は NULL になり、レポートで件数を示します。invalid_value_null
NOT NULL columns with values that become NULLNOT NULL を削除値を NULL にする必要があった列は、NOT NULL を保てません。保つと読み込みが止まります。not_null_relaxed
enum types同じラベルの enum(...)MariaDB の ENUM はラベルを同じ順序で保ちます。
uuid, inet, cidruuid は uuid、inet と cidr は varchar(43)MariaDB には uuid 型があります。アドレスはマスクを含めテキストを保ちます。
byteablob、mediumblob、longblob。キー内では varbinary(3072)バイト列はバイト列のままです。
bit(n)64 までは bit(n)、それを超えると text64 ビットまでのビット列は、そのビットが表す数値になります。それより長いものは桁をそのまま保ちます。
citext and nondeterministic collations厳密な比較テーブルは utf8mb4_bin を使うため、PostgreSQL と同じくテキストを厳密に比較します。ソースで大文字と小文字を区別しなかった列は、その動作を失います。case_insensitive_collation
serial, identityAUTO_INCREMENT、最大の ID の後から継続主キーの先頭の列を採番します。カウンターはシーケンスの続きから進みます。
a second serial or identity column in a table普通の整数MariaDB が採番するのはテーブルごとに 1 列だけです。それ以外の列はカウンターなしで値を保ちます。counter_dropped
sequences not owned by a column次に払い出す値から始まる CREATE SEQUENCEMariaDB のシーケンスも同じように動作します。
generated columnsソースと同じ STORED の生成列MariaDB も同じ方法で計算します。
generated columns with functions MariaDB lacks普通の列MariaDB 用に書き換えられない式は、普通の列とレポートの 1 行になります。generated_not_translated
defaults with functions MariaDB lacks, and defaults from a sequenceデフォルト値なしMariaDB 用に書き換えられないデフォルト値は含めず、レポートに記載します。default_not_translated
CHECK constraints変換して CREATE TABLE 内に記述MySQL 8.0.16 と MariaDB は適用します。MySQL 5.7 はチェックせずに保持します。
CHECK constraints with functions MariaDB lacks作成しないMariaDB 用に書き換えられないチェックは含めず、レポートに記載します。check_skipped
CHECK ... NOT VALID作成しないPostgreSQL は既存の行をチェックしていないため、違反している可能性があります。check_not_valid
gin, gist, brin and hash indexes, partial and expression indexes作成しないMariaDB にあるのは列全体に対する b-tree、全文、空間インデックスだけで、WHERE は使えません。index_skipped
foreign keys外部キー、FOREIGN_KEY_CHECKS=0 で読み込み行はどの順序でも読み込め、その後はキーが新しい行をチェックします。
foreign keys to tables the dump doesn't create作成しないキーは存在しないテーブルを参照できません。foreign_key_skipped
partitioned tablesすべてのパーティションの行を持つ 1 つのテーブル行は同じです。必要なら MariaDB でもう一度テーブルをパーティション分割してください。partitions_dropped
schemas1 つのデータベース、テーブル名の先頭にスキーマ名MariaDB のスキーマはデータベースであり、1 つのデータベースに読み込むスクリプトでは作成できません。public のテーブルは名前を保ちます。schemas_merged
views, functions, procedures, triggers, rules, policies, extensions and typesレポートに記載コードが PostgreSQL の言語で書かれているため、作り直せるよう一覧にします。not_converted_objects
dumps without CREATE TABLE (--data-only)値から読み取った型データのみのダンプには行しかないため、型は値から決まります。no_schema
expressions in INSERT valuesNULLデータベースを実行しないコンバーターでは、これらを評価できません。expression_value
types IntoSQL doesn't knowlongtextテキストはどんな値も保持できます。読み込み後に型を変更してください。unknown_type
text that isn't valid in its encoding不正なバイトを置換文字にテキストは有効な utf8mb4 である必要があります。invalid_utf8_replaced
text decoded twice (ñ)そのままコピーダンプにはまさにこの文字が含まれているため、そのままコピーし、レポートで指摘します。mojibake_suspected

スクリプトを MariaDB に読み込む

スクリプトはテーブルを作成して行をコピーしてから、キー、インデックス、外部キーを追加します。そのため読み込みが速く、最初のエラーで止まります。

mariadb --default-character-set=utf8mb4 mydb < postgresql.mariadb.sql

外部キーはダンプが宣言するとおりに作成し、mysqldump と同様に、行の読み込み中は FOREIGN_KEY_CHECKS=0 にします。

大きなダンプでは、サーバーと同じマシンでクライアントを実行し、1 行がとても大きい場合は max_allowed_packet を上げてください。

IntoSQL Pro なら、デスクトップアプリやコマンドラインからファイルを MariaDB に直接読み込めます。スクリプトを書き出す必要はありません。

PostgreSQL を最適な方法でダンプする

コンバーターはダンプの内容を読み取ります。次のオプションを使うと、より多くのデータがダンプに残ります。

  • pg_dump のデフォルトである --format=plain は SQL を書き出します。custom または directory 形式のアーカイブ (-Fc, -Fd) は、pg_restore -f dump.sql でデータベースサーバーなしに SQL にできます。
  • --no-owner --no-privileges を使うと、コンバーターがどのみちスキップするロールと権限付与が除かれ、ダンプが小さくなります。
  • pg_dumpall はすべてのデータベースを 1 つのファイルにダンプします。各テーブルにはデータベース名を付けるため、名前は衝突しません。

変換されないもの

ビュー、マテリアライズドビュー、関数、プロシージャ、トリガー、ルール、行セキュリティポリシー、拡張機能、型は PostgreSQL 独自の言語で書かれています。黙って削除することはなく、レポートに名前で一覧するので、MariaDB 向けに書き直せます。

PostgreSQL から MariaDB への変換に関する質問

ここに答えがない場合は、お問い合わせページからご連絡ください。担当者が返信します。 お問い合わせページ

ダンプはアップロードされますか?

いいえ。コンバーターはブラウザ上で動作し、ダンプをディスクから少しずつ読み込むため、ダンプがコンピューターの外に出ることはありません。デスクトップアプリとコマンドラインも、お使いのコンピューター上で変換します。

ダンプはどのくらいの大きさまで扱えますか?

コンバーターはダンプ全体をメモリに保持しません。ファイルを範囲ごとに 2 回読み、読みながらスクリプトを書き出します。数 GB のダンプも、ブラウザ、デスクトップアプリ、コマンドラインで変換できます。

pg_dump -Fc のアーカイブを読めますか?

直接は読めません。custom 形式のアーカイブはバイナリ形式です。pg_restore -f dump.sql dump.backup を使えば、サーバーに接続せずにコンバーターが読めるプレーンな SQL にできます。アーカイブを受け取るとコンバーターがその旨を表示します。

どの PostgreSQL バージョンのダンプに対応していますか?

PostgreSQL 10 以降の pg_dump と pg_dumpall で作成した、COPY または INSERT の行を含むダンプです。すべてのテスト用ダンプは PostgreSQL 13 と 18 で作成し、ソースとセル単位で比較しています。

serial と identity の値は保持されますか?

はい、テーブルごとに 1 列です。主キーの先頭にある serial または identity の列は AUTO_INCREMENT になり、最大の ID の後から続きます。列に属さないシーケンスは、到達していた値から始まる MariaDB のシーケンスになります。

配列、enum など PostgreSQL の型はどうなりますか?

配列は JSON 配列、boolean は tinyint(1)、enum は同じラベルの ENUM、uuid は UUID、money は decimal になります。範囲型、幾何型、hstore、複合型は PostgreSQL のテキストを保ち、対象の列はレポートに記載されます。

関数、トリガー、ビューはどうなりますか?

データベースごとに独自の言語で書かれるため、変換はせず、レポートに名前で一覧します。

スクリプトはどの MariaDB バージョンで読み込めますか?

MariaDB 10.11 以降です。すべてのテスト用ダンプを 10.11 と 11.4 で読み込み、問題があれば最初のエラーで止まります。