Recherche de site Web

Exportation de schéma MySQL sans données


Ce tutoriel vous guidera à travers l'exportation d'un schéma de base de données sans inclure tous les enregistrements.

Création d'une base de données et d'enregistrements d'exemple

Avant d'illustrer comment exporter des bases de données et des schémas, créons une base de données, des tables et des enregistrements.

N'hésitez pas à utiliser le code source fourni dans l'extrait ci-dessous ou votre schéma de base de données.

create database linux-consoledb;
use linux-consoledb;

Une fois que nous avons créé et connecté à la base de données, nous pouvons créer une table d'exemple et ajouter des données comme indiqué dans la requête ci-dessous :

create table employees(
id int not null auto_increment primary key,
name varchar(255),
email varchar(255),
department varchar(50),
salary int,
active bool
);
insert into employees(name, email, department, salary, active)
values ('Philippe Katharina', '[email ', 'Game Development', 127000, TRUE),
('Lucia Ansobert', '[email ', 'Database Development', 105000, TRUE),
('Aristeides Ruslan', '[email ', 'Game Development', 135000, FALSE),
('Brynhildr Despoina', '[email ', 'DevOps Engineer', 112000, TRUE),
('Stepan Rígbarddán', '[email ', 'Web Development', 92000, TRUE);

Nous pouvons vérifier les données en utilisant l'instruction SELECT :

select * from linux-consoledb.employees;

Table de sortie :

Exporter une base de données MySQL sans données

Une fois que nous avons la base de données d'échantillons et les enregistrements prêts, nous pouvons procéder et discuter de la façon d'exporter le schéma de la base de données.

Utiliser MySQLDump

L'un des outils les plus précieux de l'arsenal MySQL est l'utilitaire MySQLDump. Il vous permet de sauvegarder une base de données et tous les enregistrements qu'elle contient. Cela est très utile lors des sauvegardes.

Nous pouvons utiliser cet outil pour exporter la structure/schema de la base de données comme indiqué dans la commande ci-dessous :

mysqldump --XML --no-data --single-transaction=true -h localhost -u root -p <password> schema_name > path/to/dump/file

Par exemple, pour exporter le schéma linux-consoledb :

mysqldump --xml --no-data --single-transaction=true -h localhost -u root -p linux-consoledb > "C:\users\csalem\Documents\schema"

La commande ci-dessus devrait créer un fichier XML contenant le schéma de la base de données spécifiée. Un exemple de sortie XML est comme suit :

<?xml version="1.0"?>
<mysqldump xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<database name="linux-consoledb">
<table_structure name="employees">
<field Field="id" Type="int" Null="NO" Key="PRI" Extra="auto_increment" Comment="" />
<field Field="name" Type="varchar(255)" Null="YES" Key="" Extra="" Comment="" />
<field Field="email" Type="varchar(255)" Null="YES" Key="" Extra="" Comment="" />
<field Field="department" Type="varchar(50)" Null="YES" Key="" Extra="" Comment="" />
<field Field="salary" Type="int" Null="YES" Key="" Extra="" Comment="" />
<field Field="active" Type="tinyint(1)" Null="YES" Key="" Extra="" Comment="" />
<key Table="employees" Non_unique="0" Key_name="PRIMARY" Seq_in_index="1" Column_name="id" Collation="A" Cardinality="5" Null="" Index_type="BTREE" Comment="" Index_comment="" Visible="YES" />
<options Name="employees" Engine="InnoDB" Version="10" Row_format="Dynamic" Rows="5" Avg_row_length="3276" Data_length="16384" Max_data_length="0" Index_length="0" Data_free="0" Auto_increment="6" Create_time="2022-08-09 13:58:22" Update_time="2022-08-09 13:58:30" Collation="utf8mb4_0900_ai_ci" Create_options="" Comment="" />
</table_structure>
</database>
</mysqldump>

Si vous recherchez une version étendue de la commande, nous pouvons utiliser la commande :

mysqldump.exe --skip-lock-tables --routines --add-drop-table --disable-keys --extended-insert --no-data -u root -p host=localhost --port=3306 schema_name > /path/to/file

Dans ce cas, la commande indique à l'utilitaire MySQLDump de sauter les verrous sur les tables, d'ajouter des commandes de suppression et d'ajouter des insertions étendues.

Conclusion

Dans cet article, nous avons exploré comment exporter un schéma de base de données sans inclure les données en utilisant l'utilitaire MySQLDump.