Pasa un volcado de MariaDB a un MariaDB más antiguo o más nuevo
Suelta un volcado de mariadb-dump, mysqldump, phpMyAdmin o Adminer, como .sql o .sql.gz, y descarga un script que carga en MariaDB 10.11 y posteriores. UUID, INET4, INET6, JSON y las secuencias quedan igual, VECTOR se vuelve un arreglo JSON de sus números para versiones anteriores a 11.7, y cada cambio aparece en el informe.
18 filas convertidas, sin correcciones, ninguna rechazada
Tablas en shop_2024_mariadb.sqlVolcado de MariaDB 11.8.9-MariaDB-ubu2404 · escrito por mariadb-dump · utf8mb4
customers8 filas
8 columnas id int(10) unsigned not null name varchar(100) not null email varchar(150) not null country char(2) not null is_active tinyint(1) not null signed_up date not null created_at timestamp not null last_ip inet6 orders10 filas
12 columnas id int(10) unsigned not null customer_id int(10) unsigned not null status enum('pending','paid','shipped','cancelled') not null total decimal(10,2) not null items smallint(5) unsigned not null ordered_at datetime not null shipped_at datetime note varchar(255) order_ref uuid not null invoice int(11) not null details json updated_at timestamp 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;
Correcciones
No hubo nada que corregir.
Tu archivo se convierte en esta computadora y nunca se sube.
Otros ejemplos:
Qué cambia entre el archivo y el script
Cada fila es una regla que aplica el convertidor, con la línea que escribe en el informe cuando la regla cambia algo en tus datos.
utf8mb4_0900_* and utf8mb4_uca1400_* collations
utf8mb4_unicode_520_ci para utf8mb4_0900_* (utf8mb4_bin para las binarias)
MariaDB no conoce las intercalaciones más nuevas, el error que impide que la mayoría de los volcados de MySQL 8 carguen en otro lado. unicode_520 es la que sigue más de cerca las mismas reglas de Unicode.
Línea del informe: collation_replaced
zero, partial or impossible dates (0000-00-00, 2024-02-30)
se conserva
El script carga con ALLOW_INVALID_DATES y sin NO_ZERO_DATE, así que MariaDB conserva los mismos valores que tenía el origen.
TIME
TIME, con duraciones incluidas
El mismo tipo, con el mismo rango.
TINYINT(1), BOOL
TINYINT(1)
El mismo tipo con los mismos valores.
UNSIGNED and ZEROFILL
se conserva
Los mismos tipos.
ENUM and SET, the '' error value included
se conserva
Los mismos tipos; el script carga sin modo estricto, así que el valor de error carga tal cual.
JSON
JSON (LONGTEXT que MariaDB comprueba)
MariaDB lee el mismo texto JSON.
NUL bytes in text
se conserva
El valor se copia con el mismo escape que usaba el origen.
AUTO_INCREMENT
AUTO_INCREMENT con el contador de la tabla
El contador sigue donde lo dejó el origen, incluidos los contadores por grupo de MyISAM.
MyISAM AUTO_INCREMENT on the second column of a key, in a table that isn't MyISAM in the dump
un índice sobre la columna y un contador para la tabla
InnoDB cuenta una columna solo cuando encabeza un índice, y una sola vez para toda la tabla.
Línea del informe: myisam_group_autoincrement
ON UPDATE CURRENT_TIMESTAMP
se conserva
La misma cláusula, con las fracciones de segundo de la columna.
generated columns
VIRTUAL o STORED como en el origen
La misma fórmula, traducida término por término.
generated columns with functions IntoSQL doesn't read
una columna simple
Una fórmula que IntoSQL no puede leer deja una columna simple y una línea en el informe.
Línea del informe: generated_not_translated
INVISIBLE columns
columnas INVISIBLE
MySQL tiene columnas invisibles desde 8.0.23, MariaDB desde 10.3.
CHECK constraints
se conserva
Los mismos CHECK, traducidos término por término.
CHECK constraints with functions IntoSQL doesn't read
no se crea
Un CHECK que IntoSQL no puede leer se deja fuera y aparece en el informe.
Línea del informe: check_skipped
CHECK ... NOT ENFORCED
no se crea
MySQL 5.7 y MariaDB no pueden conservar un CHECK sin aplicarlo, y las filas pueden no cumplirlo.
Línea del informe: check_not_enforced
expression defaults, and defaults on TEXT, BLOB, JSON and GEOMETRY
se conserva
MySQL los acepta desde 8.0.13; el script carga en 5.7, así que se dejan fuera y aparecen en el informe. MariaDB los acepta.
Línea del informe: default_not_translated
functional indexes, KEY ((expr))
no se crea
MySQL indexa expresiones desde 8.0.13 y MariaDB no lo hace; una columna generada con un índice logra lo mismo.
Línea del informe: index_skipped
keys and indexes on a prefix, c(20)
se conserva
El mismo índice.
FULLTEXT indexes
se conserva
El mismo índice; MATCH ... AGAINST funciona como antes.
SPATIAL indexes
se conserva
El mismo índice.
foreign keys
se conservan, cargadas con FOREIGN_KEY_CHECKS=0
Las mismas claves; las filas cargan como lo hacían desde el volcado de origen.
GEOMETRY, POINT, POLYGON...
se conserva, con el SRID de cada valor
Se copian los bytes de geometría propios del servidor, SRID incluido.
INET4, INET6, UUID (MariaDB)
se conserva
MySQL no tiene esos tipos; se conserva el texto que MariaDB escribe para ellos.
BINARY, VARBINARY, BLOB
se conserva
Los bytes siguen siendo bytes.
PARTITION BY
una sola tabla
Las filas son las mismas; vuelve a particionar la tabla si lo necesita.
Línea del informe: partitions_dropped
WITH SYSTEM VERSIONING (MariaDB)
WITH SYSTEM VERSIONING, a partir de las filas actuales
Un volcado solo contiene las filas actuales; MySQL no tiene versionado del sistema.
Aria, ColumnStore, CONNECT, Spider, RocksDB (MariaDB)
se conserva
MySQL no tiene ninguno de estos motores. Cualquier otro motor se conserva.
CREATE SEQUENCE (MariaDB)
CREATE SEQUENCE con su siguiente valor
MySQL no tiene secuencias.
views, triggers, procedures, functions and events
listados en el informe
Se listan para que los vuelvas a crear; su código suele nombrar a su definidor y funciones del servidor.
Línea del informe: not_converted_objects
NOT NULL columns with values that become NULL
sin NOT NULL
Una columna cuyos valores tuvieron que volverse NULL no puede conservar NOT NULL, o la carga se detendría.
Línea del informe: not_null_relaxed
text that isn't valid in its character set
los bytes incorrectos como carácter de reemplazo
El script es UTF-8; los bytes que no lo son detendrían la carga.
Línea del informe: invalid_utf8_replaced
text decoded twice (ñ)
se copia tal cual
El volcado contiene exactamente estos caracteres, así que se copian; el informe los señala.
Línea del informe: mojibake_suspected
dumps without CREATE TABLE
tipos leídos de los valores
Un volcado hecho con --no-create-info solo tiene filas, así que los tipos salen de los valores.
Línea del informe: no_schema
geometries in a dump without CREATE TABLE
GEOMETRY
El formato de geometría de MySQL se reconoce por los valores.
SET NAMES utf8 from utf8mb4 tables
se convierte, con una advertencia
El mysqldump de MySQL 5.x escribe utf8 de 3 bytes por defecto y reemplaza cada emoji por un signo de interrogación antes de que cualquier convertidor vea el archivo.
Línea del informe: dump_lost_four_byte_chars
dumps without SET NAMES whose text isn't UTF-8
se lee como Latin-1 (Windows-1252)
El latin1 de MySQL es Windows-1252, la codificación habitual de esos volcados.
Línea del informe: charset_guessed
sjis, cp932, gbk, big5 dumps
se lee como UTF-8, con una advertencia
Estas codificaciones todavía no se decodifican.
Línea del informe: unsupported_charset
UNHEX('..'), CONVERT(b'..', UNSIGNED), CONVERT(".." USING x), ST_GeomFromText('..') in rows
se evalúan
Algunas herramientas de volcado escriben los valores como estas llamadas; se leen como los valores que producen.
other expressions in rows
NULL
Un convertidor que no ejecuta una base de datos no puede evaluarlas.
Línea del informe: expression_value
DEFAULT in VALUES
el valor predeterminado de la columna
Un valor predeterminado literal se copia en la fila.
Línea del informe: default_keyword_filled
DEFAULT in VALUES without a literal default
NULL
No hay ningún valor que copiar.
Línea del informe: default_keyword_null
REPLACE and INSERT IGNORE
filas simples
Un volcado tiene una fila por clave, así que las filas son las mismas.
Línea del informe: replace_as_insert
types IntoSQL doesn't know
LONGBLOB
Un blob admite los bytes de cualquier valor; cambia el tipo después de cargar.
Línea del informe: unknown_type
values that don't fit their column
NULL
Un volcado dañado o escrito a mano puede contener valores que su columna no admite; se vuelven NULL para que se cargue el resto.
Línea del informe: invalid_value_null
unreadable geometries
NULL
Los bytes que no son una geometría no se pueden guardar como una.
Línea del informe: bad_geometry
TIMESTAMP
se conserva, cargado en la zona horaria que indica el volcado
El script fija la misma zona horaria que fijó el volcado, así que cada instante es el mismo.
VECTOR(n) (MariaDB 11.7+)
json con los números de punto flotante como arreglo
El script carga en MariaDB 10.11 y posteriores, que no tienen un tipo vector; un arreglo JSON conserva cada número, y VEC_FromText lo vuelve a leer.
Línea del informe: type_replaced
| En el archivo | En el script | Línea del informe |
|---|---|---|
| utf8mb4_0900_* and utf8mb4_uca1400_* collations | utf8mb4_unicode_520_ci para utf8mb4_0900_* (utf8mb4_bin para las binarias)MariaDB no conoce las intercalaciones más nuevas, el error que impide que la mayoría de los volcados de MySQL 8 carguen en otro lado. unicode_520 es la que sigue más de cerca las mismas reglas de Unicode. | collation_replaced |
| zero, partial or impossible dates (0000-00-00, 2024-02-30) | se conservaEl script carga con ALLOW_INVALID_DATES y sin NO_ZERO_DATE, así que MariaDB conserva los mismos valores que tenía el origen. | |
| TIME | TIME, con duraciones incluidasEl mismo tipo, con el mismo rango. | |
| TINYINT(1), BOOL | TINYINT(1)El mismo tipo con los mismos valores. | |
| UNSIGNED and ZEROFILL | se conservaLos mismos tipos. | |
| ENUM and SET, the '' error value included | se conservaLos mismos tipos; el script carga sin modo estricto, así que el valor de error carga tal cual. | |
| JSON | JSON (LONGTEXT que MariaDB comprueba)MariaDB lee el mismo texto JSON. | |
| NUL bytes in text | se conservaEl valor se copia con el mismo escape que usaba el origen. | |
| AUTO_INCREMENT | AUTO_INCREMENT con el contador de la tablaEl contador sigue donde lo dejó el origen, incluidos los contadores por grupo de MyISAM. | |
| MyISAM AUTO_INCREMENT on the second column of a key, in a table that isn't MyISAM in the dump | un índice sobre la columna y un contador para la tablaInnoDB cuenta una columna solo cuando encabeza un índice, y una sola vez para toda la tabla. | myisam_group_autoincrement |
| ON UPDATE CURRENT_TIMESTAMP | se conservaLa misma cláusula, con las fracciones de segundo de la columna. | |
| generated columns | VIRTUAL o STORED como en el origenLa misma fórmula, traducida término por término. | |
| generated columns with functions IntoSQL doesn't read | una columna simpleUna fórmula que IntoSQL no puede leer deja una columna simple y una línea en el informe. | generated_not_translated |
| INVISIBLE columns | columnas INVISIBLEMySQL tiene columnas invisibles desde 8.0.23, MariaDB desde 10.3. | |
| CHECK constraints | se conservaLos mismos CHECK, traducidos término por término. | |
| CHECK constraints with functions IntoSQL doesn't read | no se creaUn CHECK que IntoSQL no puede leer se deja fuera y aparece en el informe. | check_skipped |
| CHECK ... NOT ENFORCED | no se creaMySQL 5.7 y MariaDB no pueden conservar un CHECK sin aplicarlo, y las filas pueden no cumplirlo. | check_not_enforced |
| expression defaults, and defaults on TEXT, BLOB, JSON and GEOMETRY | se conservaMySQL los acepta desde 8.0.13; el script carga en 5.7, así que se dejan fuera y aparecen en el informe. MariaDB los acepta. | default_not_translated |
| functional indexes, KEY ((expr)) | no se creaMySQL indexa expresiones desde 8.0.13 y MariaDB no lo hace; una columna generada con un índice logra lo mismo. | index_skipped |
| keys and indexes on a prefix, c(20) | se conservaEl mismo índice. | |
| FULLTEXT indexes | se conservaEl mismo índice; MATCH ... AGAINST funciona como antes. | |
| SPATIAL indexes | se conservaEl mismo índice. | |
| foreign keys | se conservan, cargadas con FOREIGN_KEY_CHECKS=0Las mismas claves; las filas cargan como lo hacían desde el volcado de origen. | |
| GEOMETRY, POINT, POLYGON... | se conserva, con el SRID de cada valorSe copian los bytes de geometría propios del servidor, SRID incluido. | |
| INET4, INET6, UUID (MariaDB) | se conservaMySQL no tiene esos tipos; se conserva el texto que MariaDB escribe para ellos. | |
| BINARY, VARBINARY, BLOB | se conservaLos bytes siguen siendo bytes. | |
| PARTITION BY | una sola tablaLas filas son las mismas; vuelve a particionar la tabla si lo necesita. | partitions_dropped |
| WITH SYSTEM VERSIONING (MariaDB) | WITH SYSTEM VERSIONING, a partir de las filas actualesUn volcado solo contiene las filas actuales; MySQL no tiene versionado del sistema. | |
| Aria, ColumnStore, CONNECT, Spider, RocksDB (MariaDB) | se conservaMySQL no tiene ninguno de estos motores. Cualquier otro motor se conserva. | |
| CREATE SEQUENCE (MariaDB) | CREATE SEQUENCE con su siguiente valorMySQL no tiene secuencias. | |
| views, triggers, procedures, functions and events | listados en el informeSe listan para que los vuelvas a crear; su código suele nombrar a su definidor y funciones del servidor. | not_converted_objects |
| NOT NULL columns with values that become NULL | sin NOT NULLUna columna cuyos valores tuvieron que volverse NULL no puede conservar NOT NULL, o la carga se detendría. | not_null_relaxed |
| text that isn't valid in its character set | los bytes incorrectos como carácter de reemplazoEl script es UTF-8; los bytes que no lo son detendrían la carga. | invalid_utf8_replaced |
| text decoded twice (ñ) | se copia tal cualEl volcado contiene exactamente estos caracteres, así que se copian; el informe los señala. | mojibake_suspected |
| dumps without CREATE TABLE | tipos leídos de los valoresUn volcado hecho con --no-create-info solo tiene filas, así que los tipos salen de los valores. | no_schema |
| geometries in a dump without CREATE TABLE | GEOMETRYEl formato de geometría de MySQL se reconoce por los valores. | |
| SET NAMES utf8 from utf8mb4 tables | se convierte, con una advertenciaEl mysqldump de MySQL 5.x escribe utf8 de 3 bytes por defecto y reemplaza cada emoji por un signo de interrogación antes de que cualquier convertidor vea el archivo. | dump_lost_four_byte_chars |
| dumps without SET NAMES whose text isn't UTF-8 | se lee como Latin-1 (Windows-1252)El latin1 de MySQL es Windows-1252, la codificación habitual de esos volcados. | charset_guessed |
| sjis, cp932, gbk, big5 dumps | se lee como UTF-8, con una advertenciaEstas codificaciones todavía no se decodifican. | unsupported_charset |
| UNHEX('..'), CONVERT(b'..', UNSIGNED), CONVERT(".." USING x), ST_GeomFromText('..') in rows | se evalúanAlgunas herramientas de volcado escriben los valores como estas llamadas; se leen como los valores que producen. | |
| other expressions in rows | NULLUn convertidor que no ejecuta una base de datos no puede evaluarlas. | expression_value |
| DEFAULT in VALUES | el valor predeterminado de la columnaUn valor predeterminado literal se copia en la fila. | default_keyword_filled |
| DEFAULT in VALUES without a literal default | NULLNo hay ningún valor que copiar. | default_keyword_null |
| REPLACE and INSERT IGNORE | filas simplesUn volcado tiene una fila por clave, así que las filas son las mismas. | replace_as_insert |
| types IntoSQL doesn't know | LONGBLOBUn blob admite los bytes de cualquier valor; cambia el tipo después de cargar. | unknown_type |
| values that don't fit their column | NULLUn volcado dañado o escrito a mano puede contener valores que su columna no admite; se vuelven NULL para que se cargue el resto. | invalid_value_null |
| unreadable geometries | NULLLos bytes que no son una geometría no se pueden guardar como una. | bad_geometry |
| TIMESTAMP | se conserva, cargado en la zona horaria que indica el volcadoEl script fija la misma zona horaria que fijó el volcado, así que cada instante es el mismo. | |
| VECTOR(n) (MariaDB 11.7+) | json con los números de punto flotante como arregloEl script carga en MariaDB 10.11 y posteriores, que no tienen un tipo vector; un arreglo JSON conserva cada número, y VEC_FromText lo vuelve a leer. | type_replaced |
Carga el script en MariaDB
El script crea las tablas, copia las filas y luego agrega claves, índices y claves foráneas, así que carga rápido y se detiene en el primer error.
mariadb --default-character-set=utf8mb4 mydb < mariadb.mariadb.sqlLas claves foráneas se crean como las declara el volcado, con FOREIGN_KEY_CHECKS=0 mientras cargan las filas, como hace mysqldump.
Para un volcado grande, ejecuta el cliente en la misma máquina que el servidor, y sube max_allowed_packet si una sola fila es muy grande.
IntoSQL Pro carga el archivo directo en MariaDB desde la app de escritorio o la línea de comandos, sin escribir un script.
Haz el volcado de MariaDB para el mejor resultado
El convertidor lee lo que contiene el volcado. Estas opciones conservan más de tus datos en él:
- --default-character-set=utf8mb4 conserva los emoji y otros caracteres de 4 bytes, que un volcado utf8mb3 pierde antes de que el convertidor lo vea.
- --hex-blob escribe las columnas binarias y los valores VECTOR en hexadecimal, que sobrevive a la copia entre sistemas.
- --routines --triggers --events agregan esos objetos al volcado, para que el informe pueda listarlos.
Qué no se convierte
Las vistas, disparadores, procedimientos, funciones y otros objetos escritos en el propio lenguaje de MariaDB aparecen en el informe por nombre, nunca se descartan en silencio, para que revises cada uno contra la versión de MariaDB en la que cargas antes de recrearlo.
Preguntas sobre pasar MariaDB entre versiones
¿No encuentras la respuesta? Escríbenos desde la página de contacto y te responde una persona. Página de contacto
¿Se sube mi volcado?
No. El convertidor se ejecuta en tu navegador y lee el volcado de tu disco por partes, así que nunca sale de tu computadora. La app de escritorio y la línea de comandos también convierten en tu computadora.
¿Qué tan grande puede ser el volcado?
El convertidor nunca tiene todo el volcado en memoria: lee el archivo dos veces, por rangos, y escribe el script sobre la marcha. Los volcados de varios gigabytes se convierten en el navegador, en la app de escritorio y con la línea de comandos.
¿De qué versiones de MariaDB puede venir el volcado?
Volcados de mariadb-dump y mysqldump en MariaDB 10.3 a 12, con un INSERT por tabla o uno por fila. Cada volcado de prueba viene de MariaDB 10.11, 11.4 y 11.8 y se compara con su origen celda por celda.
¿Se conservan las columnas UUID, INET6, JSON y VECTOR?
UUID, INET4, INET6 y JSON se quedan tal cual. VECTOR se vuelve un arreglo JSON de sus números, porque MariaDB antes de 11.7 no tiene un tipo vector; VEC_FromText lo vuelve a leer.
¿Se conservan los valores AUTO_INCREMENT y las secuencias?
Sí. AUTO_INCREMENT y las secuencias se quedan tal cual, y los valores predeterminados que toman de una secuencia siguen tomando de ella.
¿Qué pasa con los procedimientos almacenados y los disparadores?
Aparecen en el informe por nombre y no se convierten, para que puedas revisar cada uno contra el MariaDB en el que cargas antes de volver a crearlo.
¿En qué versiones de MariaDB carga el script?
MariaDB 10.11 y posteriores, sin importar qué versión escribió el volcado. Cada volcado de prueba carga en 10.11 y 11.4.