Aller au contenu
Accueil IntoSQL

Passer un dump MariaDB vers un MariaDB plus ancien ou plus récent

Déposez un dump de mariadb-dump, mysqldump, phpMyAdmin ou Adminer, en .sql ou .sql.gz, et téléchargez un script qui se charge sur MariaDB 10.11 et suivants. UUID, INET4, INET6, JSON et les séquences restent tels quels, VECTOR devient un tableau JSON de ses nombres pour les versions avant 11.7, et chaque changement figure dans le rapport.

Votre fichier
sqlshop_2024_mariadb.sqlFichier d'exemple, 6,6 ko
Votre base de données

18 lignes converties, aucune correction, aucune rejetée

Afficher

Tables de shop_2024_mariadb.sqlDump MariaDB 11.8.9-MariaDB-ubu2404 · écrit par mariadb-dump · utf8mb4

  • customers8 lignes
    8 colonnes
    idint(10) unsigned not null
    namevarchar(100) not null
    emailvarchar(150) not null
    countrychar(2) not null
    is_activetinyint(1) not null
    signed_update not null
    created_attimestamp not null
    last_ipinet6
  • orders10 lignes
    12 colonnes
    idint(10) unsigned not null
    customer_idint(10) unsigned not null
    statusenum('pending','paid','shipped','cancelled') not null
    totaldecimal(10,2) not null
    itemssmallint(5) unsigned not null
    ordered_atdatetime not null
    shipped_atdatetime
    notevarchar(255)
    order_refuuid not null
    invoiceint(11) not null
    detailsjson
    updated_attimestamp not null
-- Written by IntoSQL from a MySQL dump. Load it with: mariadb --default-character-set=utf8mb4 <database> < <file>
SET NAMES utf8mb4;
SET TIME_ZONE = '+00:00';
SET FOREIGN_KEY_CHECKS = 0;
SET UNIQUE_CHECKS = 0;
SET SQL_MODE = 'NO_AUTO_VALUE_ON_ZERO,ALLOW_INVALID_DATES';

CREATE SEQUENCE `invoice_numbers` START WITH 1000 MINVALUE 1 MAXVALUE 9223372036854775806 INCREMENT BY 1;
SELECT SETVAL(`invoice_numbers`, 2000, 0);
CREATE TABLE `customers` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(100) NOT NULL,
  `email` varchar(150) NOT NULL,
  `country` char(2) NOT NULL DEFAULT 'US',
  `is_active` tinyint(1) NOT NULL DEFAULT 1,
  `signed_up` date NOT NULL DEFAULT '0000-00-00',
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `last_ip` inet6 DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `uq_email` (`email`)
) ENGINE=InnoDB AUTO_INCREMENT=1001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci COMMENT='People who bought at least once';

CREATE TABLE `orders` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `customer_id` int(10) unsigned NOT NULL,
  `status` enum('pending','paid','shipped','cancelled') NOT NULL DEFAULT 'pending',
  `total` decimal(10,2) NOT NULL,
  `items` smallint(5) unsigned NOT NULL DEFAULT 1,
  `ordered_at` datetime NOT NULL,
  `shipped_at` datetime DEFAULT NULL,
  `note` varchar(255) DEFAULT NULL,
  `order_ref` uuid NOT NULL,
  `invoice` int(11) NOT NULL DEFAULT (nextval(`invoice_numbers`)),
  `details` json DEFAULT NULL,
  `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `idx_customer` (`customer_id`),
  KEY `idx_status_date` (`status`,`ordered_at`),
  CONSTRAINT `fk_orders_customer` FOREIGN KEY (`customer_id`) REFERENCES `customers` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;

INSERT INTO `customers` (`id`,`name`,`email`,`country`,`is_active`,`signed_up`,`created_at`,`last_ip`) VALUES (1,'Ana Martínez','ana@example.com','MX',1,'2023-01-15','2023-01-15 10:24:00','::ffff:203.0.113.7'),(2,'Zoë Müller','zoe@example.de','DE',1,'2023-02-03','2023-02-03 08:11:42','2001:db8::1'),(3,'José Peña','jose@example.es','ES',0,'2023-03-21','2023-03-21 19:05:17',NULL),(4,'李雷','lilei@example.cn','CN',1,'2023-05-09','2023-05-09 02:40:00','::ffff:198.51.100.23'),(5,'Noah O\'Brien','noah@example.ie','IE',1,'0000-00-00','2023-06-30 14:00:00',NULL),(6,'Amélie Laurent','amelie@example.fr','FR',1,'2024-01-02','2024-01-02 09:30:00','2001:db8:85a3::8a2e:370:7334'),(7,'Ravi Patel','ravi@example.in','IN',0,'2024-02-29','2024-02-29 23:59:59','::ffff:192.0.2.200'),(8,'Sofia Rossi 🌻','sofia@example.it','IT',1,'2024-04-12','2024-04-12 12:12:12',NULL);
INSERT INTO `orders` (`id`,`customer_id`,`status`,`total`,`items`,`ordered_at`,`shipped_at`,`note`,`order_ref`,`invoice`,`details`,`updated_at`) VALUES (1,1,'shipped',129.90,3,'2024-03-01 10:00:00','2024-03-02 16:30:00',NULL,'0b7a4c2e-3f1d-4e8a-9c55-1a2b3c4d5e6f',1000,'{\"gift\": false}','2024-03-02 16:30:00'),(2,2,'paid',54.00,1,'2024-03-02 11:15:00',NULL,'Gift wrap 🎁','1c8b5d3f-4a2e-4f9b-8d66-2b3c4d5e6f70',1001,'{\"gift\": true, \"wrap\": \"red\"}','2024-03-02 11:20:00'),(3,1,'cancelled',12.50,1,'2024-03-03 09:45:00',NULL,'Customer changed their mind','2d9c6e4a-5b3f-4a0c-9e77-3c4d5e6f7081',1002,NULL,'2024-03-03 10:00:00'),(4,4,'shipped',980.00,12,'2024-03-05 02:10:00','2024-03-07 08:00:00','请小心轻放','3e0d7f5b-6c4a-4b1d-8f88-4d5e6f708192',1003,'{\"fragile\": true}','2024-03-07 08:00:00'),(5,5,'pending',45.75,2,'2024-03-08 17:20:00',NULL,'Leave at the door; ring twice','4f1e806c-7d5b-4c2e-9a99-5e6f708192a3',1004,NULL,'2024-03-08 17:20:00'),(6,6,'shipped',310.40,5,'2024-03-10 13:00:00','2024-03-11 09:00:00','Fragile: \"glass\"','50f2917d-8e6c-4d3f-8baa-6f708192a3b4',1005,'{\"fragile\": true}','2024-03-11 09:00:00'),(7,8,'paid',76.20,2,'2024-03-11 18:45:00',NULL,NULL,'6103a28e-9f7d-4e40-9cbb-708192a3b4c5',1006,NULL,'2024-03-11 18:46:00'),(8,2,'',19.99,1,'2024-03-12 08:00:00',NULL,'Status lost in an old import','7214b39f-a08e-4f51-8dcc-8192a3b4c5d6',1007,NULL,'2024-03-12 08:00:00'),(9,3,'shipped',64.00,2,'2024-03-14 15:30:00','0000-00-00 00:00:00','Shipping date never recorded','8325c4a0-b19f-4062-9edd-92a3b4c5d6e7',1008,'{\"parcels\": [1, 2]}','2024-03-15 10:00:00'),(10,7,'paid',1499.00,1,'2024-03-15 21:05:00',NULL,'C:\\Users\\ravi\\invoice.pdf','9436d5b1-c2a0-4173-8fee-a3b4c5d6e7f8',1009,NULL,'2024-03-15 21:05:00');

SET UNIQUE_CHECKS = 1;
SET FOREIGN_KEY_CHECKS = 1;

Corrections

Rien n'avait besoin d'être corrigé.

Votre fichier est converti sur cet ordinateur et n'est jamais envoyé.

Autres exemples :

Ce qui change entre le fichier et le script

Chaque ligne est une règle appliquée par le convertisseur, avec la ligne de rapport qu'il écrit quand la règle change quelque chose dans vos données.

  • utf8mb4_0900_* and utf8mb4_uca1400_* collations

    utf8mb4_unicode_520_ci pour utf8mb4_0900_* (utf8mb4_bin pour les binaires)

    MariaDB ne connaît pas les collations plus récentes, l'erreur qui empêche la plupart des dumps MySQL 8 de se charger ailleurs. unicode_520 suit au plus près les mêmes règles Unicode.

    Ligne du rapport: collation_replaced

  • zero, partial or impossible dates (0000-00-00, 2024-02-30)

    conservé

    Le script se charge avec ALLOW_INVALID_DATES et sans NO_ZERO_DATE, donc MariaDB garde les mêmes valeurs que la source.

  • TIME

    TIME, durées comprises

    Le même type, avec la même plage.

  • TINYINT(1), BOOL

    TINYINT(1)

    Le même type avec les mêmes valeurs.

  • UNSIGNED and ZEROFILL

    conservé

    Les mêmes types.

  • ENUM and SET, the '' error value included

    conservé

    Les mêmes types ; le script se charge sans mode strict, donc la valeur d'erreur se charge telle quelle.

  • JSON

    JSON (LONGTEXT vérifié par MariaDB)

    MariaDB lit le même texte JSON.

  • NUL bytes in text

    conservé

    La valeur est copiée avec le même échappement que la source.

  • AUTO_INCREMENT

    AUTO_INCREMENT avec le compteur de la table

    Le compteur reprend là où la source l'a laissé, y compris les compteurs par groupe de MyISAM.

  • MyISAM AUTO_INCREMENT on the second column of a key, in a table that isn't MyISAM in the dump

    un index sur la colonne et un seul compteur pour la table

    InnoDB ne compte une colonne que si elle est en tête d'un index, et une seule fois pour toute la table.

    Ligne du rapport: myisam_group_autoincrement

  • ON UPDATE CURRENT_TIMESTAMP

    conservé

    La même clause, avec les fractions de seconde de la colonne.

  • generated columns

    VIRTUAL ou STORED comme dans la source

    La même formule, traduite terme à terme.

  • generated columns with functions IntoSQL doesn't read

    une colonne simple

    Une formule qu'IntoSQL ne sait pas lire laisse une colonne simple et une ligne dans le rapport.

    Ligne du rapport: generated_not_translated

  • INVISIBLE columns

    colonnes INVISIBLE

    MySQL a des colonnes invisibles depuis 8.0.23, MariaDB depuis 10.3.

  • CHECK constraints

    conservé

    Les mêmes contraintes CHECK, traduites terme à terme.

  • CHECK constraints with functions IntoSQL doesn't read

    non créée

    Une contrainte CHECK qu'IntoSQL ne sait pas lire est omise et signalée.

    Ligne du rapport: check_skipped

  • CHECK ... NOT ENFORCED

    non créée

    MySQL 5.7 et MariaDB ne peuvent pas garder une contrainte CHECK sans l'appliquer, et les lignes peuvent l'enfreindre.

    Ligne du rapport: check_not_enforced

  • expression defaults, and defaults on TEXT, BLOB, JSON and GEOMETRY

    conservé

    MySQL les accepte depuis 8.0.13 ; le script se charge sur 5.7, donc elles sont omises et signalées. MariaDB les accepte.

    Ligne du rapport: default_not_translated

  • functional indexes, KEY ((expr))

    non créé

    MySQL indexe des expressions depuis 8.0.13 et MariaDB pas du tout ; une colonne générée avec un index fait la même chose.

    Ligne du rapport: index_skipped

  • keys and indexes on a prefix, c(20)

    conservé

    Le même index.

  • FULLTEXT indexes

    conservé

    Le même index ; MATCH ... AGAINST fonctionne comme avant.

  • SPATIAL indexes

    conservé

    Le même index.

  • foreign keys

    conservées, chargées avec FOREIGN_KEY_CHECKS=0

    Les mêmes clés ; les lignes se chargent comme depuis le dump source.

  • GEOMETRY, POINT, POLYGON...

    conservé, avec le SRID de chaque valeur

    Les octets de géométrie propres au serveur sont copiés, SRID compris.

  • INET4, INET6, UUID (MariaDB)

    conservé

    MySQL n'a pas ces types ; le texte que MariaDB écrit pour eux est conservé.

  • BINARY, VARBINARY, BLOB

    conservé

    Les octets restent des octets.

  • PARTITION BY

    une seule table

    Les lignes sont les mêmes ; partitionnez à nouveau la table si besoin.

    Ligne du rapport: partitions_dropped

  • WITH SYSTEM VERSIONING (MariaDB)

    WITH SYSTEM VERSIONING, à partir des lignes actuelles

    Un dump ne contient que les lignes actuelles ; MySQL n'a pas de versionnage système.

  • Aria, ColumnStore, CONNECT, Spider, RocksDB (MariaDB)

    conservé

    MySQL n'a aucun de ces moteurs. Tous les autres moteurs sont conservés.

  • CREATE SEQUENCE (MariaDB)

    CREATE SEQUENCE avec sa prochaine valeur

    MySQL n'a pas de séquences.

  • views, triggers, procedures, functions and events

    listés dans le rapport

    Ils sont listés pour que vous les recréiez ; leur code nomme souvent son definer et des fonctions du serveur.

    Ligne du rapport: not_converted_objects

  • NOT NULL columns with values that become NULL

    NOT NULL retiré

    Une colonne dont des valeurs ont dû devenir NULL ne peut pas garder NOT NULL, sinon le chargement s'arrêterait.

    Ligne du rapport: not_null_relaxed

  • text that isn't valid in its character set

    les octets invalides deviennent le caractère de remplacement

    Le script est en UTF-8 ; des octets qui ne le sont pas arrêteraient le chargement.

    Ligne du rapport: invalid_utf8_replaced

  • text decoded twice (ñ)

    copié tel quel

    Le dump contient exactement ces caractères, ils sont donc copiés ; le rapport les signale.

    Ligne du rapport: mojibake_suspected

  • dumps without CREATE TABLE

    types déduits des valeurs

    Un dump fait avec --no-create-info ne contient que des lignes, donc les types viennent des valeurs.

    Ligne du rapport: no_schema

  • geometries in a dump without CREATE TABLE

    GEOMETRY

    Le format de géométrie de MySQL est reconnu à partir des valeurs.

  • SET NAMES utf8 from utf8mb4 tables

    converti, avec un avertissement

    Le mysqldump de MySQL 5.x écrit par défaut en utf8 sur 3 octets et remplace chaque emoji par un point d'interrogation avant qu'un convertisseur ne voie le fichier.

    Ligne du rapport: dump_lost_four_byte_chars

  • dumps without SET NAMES whose text isn't UTF-8

    lu comme Latin-1 (Windows-1252)

    Le latin1 de MySQL est le Windows-1252, l'encodage habituel de ces dumps.

    Ligne du rapport: charset_guessed

  • sjis, cp932, gbk, big5 dumps

    lu comme UTF-8, avec un avertissement

    Ces encodages ne sont pas encore décodés.

    Ligne du rapport: unsupported_charset

  • UNHEX('..'), CONVERT(b'..', UNSIGNED), CONVERT(".." USING x), ST_GeomFromText('..') in rows

    évaluées

    Certains outils de dump écrivent les valeurs sous forme de ces appels ; ils sont lus comme les valeurs qu'ils produisent.

  • other expressions in rows

    NULL

    Un convertisseur qui n'exécute pas de base de données ne peut pas les évaluer.

    Ligne du rapport: expression_value

  • DEFAULT in VALUES

    la valeur par défaut de la colonne

    Une valeur par défaut littérale est copiée dans la ligne.

    Ligne du rapport: default_keyword_filled

  • DEFAULT in VALUES without a literal default

    NULL

    Il n'y a aucune valeur à copier.

    Ligne du rapport: default_keyword_null

  • REPLACE and INSERT IGNORE

    lignes simples

    Un dump a une ligne par clé, donc les lignes sont les mêmes.

    Ligne du rapport: replace_as_insert

  • types IntoSQL doesn't know

    LONGBLOB

    Un blob contient les octets de n'importe quelle valeur ; changez le type après le chargement.

    Ligne du rapport: unknown_type

  • values that don't fit their column

    NULL

    Un dump endommagé ou écrit à la main peut contenir des valeurs que sa colonne n'accepte pas ; elles deviennent NULL pour que le reste se charge.

    Ligne du rapport: invalid_value_null

  • unreadable geometries

    NULL

    Des octets qui ne forment pas une géométrie ne peuvent pas être stockés comme telle.

    Ligne du rapport: bad_geometry

  • TIMESTAMP

    conservé, chargé dans le fuseau horaire indiqué par le dump

    Le script définit le même fuseau horaire que le dump, donc chaque instant reste le même.

  • VECTOR(n) (MariaDB 11.7+)

    json avec les flottants en tableau

    Le script se charge sur MariaDB 10.11 et versions ultérieures, qui n'ont pas de type vector ; un tableau JSON garde chaque flottant, et VEC_FromText le relit.

    Ligne du rapport: type_replaced

Dans le fichierDans le scriptLigne du rapport
utf8mb4_0900_* and utf8mb4_uca1400_* collationsutf8mb4_unicode_520_ci pour utf8mb4_0900_* (utf8mb4_bin pour les binaires)MariaDB ne connaît pas les collations plus récentes, l'erreur qui empêche la plupart des dumps MySQL 8 de se charger ailleurs. unicode_520 suit au plus près les mêmes règles Unicode.collation_replaced
zero, partial or impossible dates (0000-00-00, 2024-02-30)conservéLe script se charge avec ALLOW_INVALID_DATES et sans NO_ZERO_DATE, donc MariaDB garde les mêmes valeurs que la source.
TIMETIME, durées comprisesLe même type, avec la même plage.
TINYINT(1), BOOLTINYINT(1)Le même type avec les mêmes valeurs.
UNSIGNED and ZEROFILLconservéLes mêmes types.
ENUM and SET, the '' error value includedconservéLes mêmes types ; le script se charge sans mode strict, donc la valeur d'erreur se charge telle quelle.
JSONJSON (LONGTEXT vérifié par MariaDB)MariaDB lit le même texte JSON.
NUL bytes in textconservéLa valeur est copiée avec le même échappement que la source.
AUTO_INCREMENTAUTO_INCREMENT avec le compteur de la tableLe compteur reprend là où la source l'a laissé, y compris les compteurs par groupe de MyISAM.
MyISAM AUTO_INCREMENT on the second column of a key, in a table that isn't MyISAM in the dumpun index sur la colonne et un seul compteur pour la tableInnoDB ne compte une colonne que si elle est en tête d'un index, et une seule fois pour toute la table.myisam_group_autoincrement
ON UPDATE CURRENT_TIMESTAMPconservéLa même clause, avec les fractions de seconde de la colonne.
generated columnsVIRTUAL ou STORED comme dans la sourceLa même formule, traduite terme à terme.
generated columns with functions IntoSQL doesn't readune colonne simpleUne formule qu'IntoSQL ne sait pas lire laisse une colonne simple et une ligne dans le rapport.generated_not_translated
INVISIBLE columnscolonnes INVISIBLEMySQL a des colonnes invisibles depuis 8.0.23, MariaDB depuis 10.3.
CHECK constraintsconservéLes mêmes contraintes CHECK, traduites terme à terme.
CHECK constraints with functions IntoSQL doesn't readnon crééeUne contrainte CHECK qu'IntoSQL ne sait pas lire est omise et signalée.check_skipped
CHECK ... NOT ENFORCEDnon crééeMySQL 5.7 et MariaDB ne peuvent pas garder une contrainte CHECK sans l'appliquer, et les lignes peuvent l'enfreindre.check_not_enforced
expression defaults, and defaults on TEXT, BLOB, JSON and GEOMETRYconservéMySQL les accepte depuis 8.0.13 ; le script se charge sur 5.7, donc elles sont omises et signalées. MariaDB les accepte.default_not_translated
functional indexes, KEY ((expr))non crééMySQL indexe des expressions depuis 8.0.13 et MariaDB pas du tout ; une colonne générée avec un index fait la même chose.index_skipped
keys and indexes on a prefix, c(20)conservéLe même index.
FULLTEXT indexesconservéLe même index ; MATCH ... AGAINST fonctionne comme avant.
SPATIAL indexesconservéLe même index.
foreign keysconservées, chargées avec FOREIGN_KEY_CHECKS=0Les mêmes clés ; les lignes se chargent comme depuis le dump source.
GEOMETRY, POINT, POLYGON...conservé, avec le SRID de chaque valeurLes octets de géométrie propres au serveur sont copiés, SRID compris.
INET4, INET6, UUID (MariaDB)conservéMySQL n'a pas ces types ; le texte que MariaDB écrit pour eux est conservé.
BINARY, VARBINARY, BLOBconservéLes octets restent des octets.
PARTITION BYune seule tableLes lignes sont les mêmes ; partitionnez à nouveau la table si besoin.partitions_dropped
WITH SYSTEM VERSIONING (MariaDB)WITH SYSTEM VERSIONING, à partir des lignes actuellesUn dump ne contient que les lignes actuelles ; MySQL n'a pas de versionnage système.
Aria, ColumnStore, CONNECT, Spider, RocksDB (MariaDB)conservéMySQL n'a aucun de ces moteurs. Tous les autres moteurs sont conservés.
CREATE SEQUENCE (MariaDB)CREATE SEQUENCE avec sa prochaine valeurMySQL n'a pas de séquences.
views, triggers, procedures, functions and eventslistés dans le rapportIls sont listés pour que vous les recréiez ; leur code nomme souvent son definer et des fonctions du serveur.not_converted_objects
NOT NULL columns with values that become NULLNOT NULL retiréUne colonne dont des valeurs ont dû devenir NULL ne peut pas garder NOT NULL, sinon le chargement s'arrêterait.not_null_relaxed
text that isn't valid in its character setles octets invalides deviennent le caractère de remplacementLe script est en UTF-8 ; des octets qui ne le sont pas arrêteraient le chargement.invalid_utf8_replaced
text decoded twice (ñ)copié tel quelLe dump contient exactement ces caractères, ils sont donc copiés ; le rapport les signale.mojibake_suspected
dumps without CREATE TABLEtypes déduits des valeursUn dump fait avec --no-create-info ne contient que des lignes, donc les types viennent des valeurs.no_schema
geometries in a dump without CREATE TABLEGEOMETRYLe format de géométrie de MySQL est reconnu à partir des valeurs.
SET NAMES utf8 from utf8mb4 tablesconverti, avec un avertissementLe mysqldump de MySQL 5.x écrit par défaut en utf8 sur 3 octets et remplace chaque emoji par un point d'interrogation avant qu'un convertisseur ne voie le fichier.dump_lost_four_byte_chars
dumps without SET NAMES whose text isn't UTF-8lu comme Latin-1 (Windows-1252)Le latin1 de MySQL est le Windows-1252, l'encodage habituel de ces dumps.charset_guessed
sjis, cp932, gbk, big5 dumpslu comme UTF-8, avec un avertissementCes encodages ne sont pas encore décodés.unsupported_charset
UNHEX('..'), CONVERT(b'..', UNSIGNED), CONVERT(".." USING x), ST_GeomFromText('..') in rowsévaluéesCertains outils de dump écrivent les valeurs sous forme de ces appels ; ils sont lus comme les valeurs qu'ils produisent.
other expressions in rowsNULLUn convertisseur qui n'exécute pas de base de données ne peut pas les évaluer.expression_value
DEFAULT in VALUESla valeur par défaut de la colonneUne valeur par défaut littérale est copiée dans la ligne.default_keyword_filled
DEFAULT in VALUES without a literal defaultNULLIl n'y a aucune valeur à copier.default_keyword_null
REPLACE and INSERT IGNORElignes simplesUn dump a une ligne par clé, donc les lignes sont les mêmes.replace_as_insert
types IntoSQL doesn't knowLONGBLOBUn blob contient les octets de n'importe quelle valeur ; changez le type après le chargement.unknown_type
values that don't fit their columnNULLUn dump endommagé ou écrit à la main peut contenir des valeurs que sa colonne n'accepte pas ; elles deviennent NULL pour que le reste se charge.invalid_value_null
unreadable geometriesNULLDes octets qui ne forment pas une géométrie ne peuvent pas être stockés comme telle.bad_geometry
TIMESTAMPconservé, chargé dans le fuseau horaire indiqué par le dumpLe script définit le même fuseau horaire que le dump, donc chaque instant reste le même.
VECTOR(n) (MariaDB 11.7+)json avec les flottants en tableauLe script se charge sur MariaDB 10.11 et versions ultérieures, qui n'ont pas de type vector ; un tableau JSON garde chaque flottant, et VEC_FromText le relit.type_replaced

Charger le script dans MariaDB

Le script crée les tables, copie les lignes, puis ajoute les clés, les index et les clés étrangères ; il se charge donc vite et s'arrête à la première erreur.

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

Les clés étrangères sont créées comme le dump les déclare, avec FOREIGN_KEY_CHECKS=0 pendant le chargement des lignes, comme le fait mysqldump.

Pour un gros dump, exécutez le client sur la machine du serveur, et augmentez max_allowed_packet si une seule ligne est très grande.

IntoSQL Pro charge le fichier directement dans MariaDB depuis l'application de bureau ou la ligne de commande, sans écrire de script.

Faire le dump MariaDB pour un meilleur résultat

Le convertisseur lit ce que contient le dump. Ces options y gardent davantage de vos données :

  • --default-character-set=utf8mb4 garde les emoji et autres caractères sur 4 octets, qu'un dump utf8mb3 perd avant que le convertisseur ne le voie.
  • --hex-blob écrit les colonnes binaires et les valeurs VECTOR en hexadécimal, ce qui résiste aux copies entre systèmes.
  • --routines --triggers --events ajoutent ces objets au dump, pour que le rapport puisse les lister.

Ce qui n'est pas converti

Les vues, triggers, procédures, fonctions et autres objets écrits dans le propre langage de MariaDB sont listés par nom dans le rapport, jamais supprimés en silence, pour que vous vérifiiez chacun face à la version de MariaDB cible avant de le recréer.

Questions sur le passage de MariaDB d'une version à l'autre

Pas de réponse ici ? Écrivez-nous depuis la page de contact, une personne vous répond. Page de contact

Mon dump est-il envoyé ?

Non. Le convertisseur s'exécute dans votre navigateur et lit le dump depuis votre disque par morceaux ; il ne quitte donc jamais votre ordinateur. L'application de bureau et la ligne de commande convertissent aussi sur votre ordinateur.

Quelle taille peut avoir le dump ?

Le convertisseur ne garde jamais tout le dump en mémoire : il lit le fichier deux fois, par plages, et écrit le script au fur et à mesure. Les dumps de plusieurs gigaoctets se convertissent dans le navigateur, dans l'application de bureau et avec la ligne de commande.

De quelles versions de MariaDB le dump peut-il venir ?

Les dumps de mariadb-dump et mysqldump sur MariaDB 10.3 à 12, avec un INSERT par table ou un par ligne. Chaque dump de test vient de MariaDB 10.11, 11.4 et 11.8 et est comparé à sa source cellule par cellule.

Les colonnes UUID, INET6, JSON et VECTOR sont-elles conservées ?

UUID, INET4, INET6 et JSON restent tels quels. VECTOR devient un tableau JSON de ses flottants, car MariaDB avant 11.7 n'a pas de type vector ; VEC_FromText le relit.

Les valeurs AUTO_INCREMENT et les séquences sont-elles conservées ?

Oui. AUTO_INCREMENT et les séquences restent tels quels, et les valeurs par défaut qui puisent dans une séquence continuent d'y puiser.

Et les procédures stockées et les déclencheurs ?

Ils sont listés par nom dans le rapport et ne sont pas convertis, pour que vous puissiez vérifier chacun avec le MariaDB où vous chargez avant de le recréer.

Sur quelles versions de MariaDB le script se charge-t-il ?

MariaDB 10.11 et versions ultérieures, quelle que soit la version qui a écrit le dump. Chaque dump de test se charge sur 10.11 et 11.4.