{"id":2246,"date":"2021-03-05T15:52:37","date_gmt":"2021-03-05T13:52:37","guid":{"rendered":"https:\/\/www.h-hennes.fr\/blog\/?p=2246"},"modified":"2021-03-05T16:00:06","modified_gmt":"2021-03-05T14:00:06","slug":"mysql-identifier-les-tables-manquantes-entre-2-bases-de-donnees","status":"publish","type":"post","link":"https:\/\/www.h-hennes.fr\/blog\/2021\/03\/05\/mysql-identifier-les-tables-manquantes-entre-2-bases-de-donnees\/","title":{"rendered":"Mysql : identifier les tables manquantes entre 2 bases de donn\u00e9es"},"content":{"rendered":"\n<p>Un petit article pratique assez g\u00e9n\u00e9rique pour une fois.<br><br>Pour un projet r\u00e9cent il fallait que je puisse d\u00e9tecter les tables manquantes entre une base de donn\u00e9es \u00ab\u00a0native\u00a0\u00bb et la base de donn\u00e9es du projet.<\/p>\n<p>Il existe un certain nombre de logiciels qui le permettent mais je n&rsquo;en avais pas sous la main. <br>Navicat permets d&rsquo;identifier les tables concern\u00e9es mais pas d&rsquo;en exporter la liste.<br><br>La solution donn\u00e9e ici permettra de faire tout en ligne de commandes ( linux ) <br><br>J&rsquo;ai utilis\u00e9 l&rsquo;outil <a href=\"https:\/\/github.com\/DBDiff\/DBDiff\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/DBDiff\/DBDiff<\/a> comme base.<br><br>Il faut commencer par t\u00e9l\u00e9charger le phar<\/p>\n\n\n\n<pre lang=\"bash\">wget https:\/\/github.com\/DBDiff\/DBDiff\/releases\/download\/v1.0.0\/dbdiff.phar\n<\/pre>\n\n\n\n<p>Ajouter les droits d&rsquo;ex\u00e9cution au fichier.<br>Il faut ensuite configurer une connexion pour l&rsquo;outil dbdiff ( dans le m\u00eame dossier ou vous allez placer le phar )<br>Pour cela il faut cr\u00e9er un fichier .dbdiff ( attention au . devant ) avec les identifiants de connexions<\/p>\n\n\n\n<pre lang=\"yml\">server1:\n  user: user\n  password: password\n  port: 3306 # for MySQL this is 3306\n  host: 127.0.0.1 # usually localhost or 127.0.0.1\n#Mettre la configuration des autres serveurs si n\u00e9cessaires\nserver x:\n<\/pre>\n\n\n\n<p>L&rsquo;outil dbdiff permets ensuite de g\u00e9n\u00e9rer nativement un fichier sql r\u00e9capitulatif des diff\u00e9rences via la commande :<\/p>\n\n\n\n<pre lang=\"bash\">.\/dbdiff.phar server1.db1:db2\n<\/pre>\n\n\n\n<p>Ceci fait d\u00e9j\u00e0 une partie du travail , mais en jouant avec la console il est possible d&rsquo;obtenir directement la liste des tables concern\u00e9es \u00e9crites dans un fichier \ud83d\ude42<\/p>\n\n\n\n<pre lang=\"bash\" escaped=\"true\">.\/dbdiff.phar server1.db1:db2 &amp;&amp; cat .\/migration.sql | grep \"CREATE TABLE\" | sed -e \"s\/CREATE TABLE \\`\/\/g\" | sed -e \"s\/\\` (\/\/g\" | sort &gt;&gt; diff_tables.txt\n<\/pre>\n\n\n\n<p>Plus qu&rsquo;a aller voir le fichier diff_tables.txt pour avoir la liste des tables qui changent \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Un petit article pratique assez g\u00e9n\u00e9rique pour une fois. Pour un projet r\u00e9cent il fallait que je puisse d\u00e9tecter les tables manquantes entre une base de donn\u00e9es \u00ab\u00a0native\u00a0\u00bb et la base de donn\u00e9es du projet. Il existe un certain nombre de logiciels qui le permettent mais je n&rsquo;en avais pas sous la main. Navicat permets [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[6],"tags":[564,565,75],"class_list":["post-2246","post","type-post","status-publish","format-standard","hentry","category-trucs-et-astuces","tag-comparedb","tag-dbdiff","tag-mysql"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/posts\/2246","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/comments?post=2246"}],"version-history":[{"count":3,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/posts\/2246\/revisions"}],"predecessor-version":[{"id":2250,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/posts\/2246\/revisions\/2250"}],"wp:attachment":[{"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/media?parent=2246"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/categories?post=2246"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/tags?post=2246"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}