<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Jérôme Tamarelle &#187; MySQL</title>
	<atom:link href="http://jerome.tamarelle.net/blog/indice/mysql/feed/" rel="self" type="application/rss+xml" />
	<link>http://jerome.tamarelle.net/blog</link>
	<description>I share so I am</description>
	<lastBuildDate>Sat, 17 Jul 2010 21:41:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Développer un plugin pour MySQL Workbench</title>
		<link>http://jerome.tamarelle.net/blog/2009/12/developper-un-plugin-pour-mysql-workbench/</link>
		<comments>http://jerome.tamarelle.net/blog/2009/12/developper-un-plugin-pour-mysql-workbench/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 23:34:10 +0000</pubDate>
		<dc:creator>Jérôme</dc:creator>
				<category><![CDATA[IDE]]></category>
		<category><![CDATA[Base de données]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Workbench]]></category>

		<guid isPermaLink="false">http://jerome.tamarelle.net/blog/?p=51</guid>
		<description><![CDATA[MySQL Workbench est un logiciel de modélisation de bases de données pour MySQL. Successeur du feu DB Designer, il offre une ergonomie d'utilisation, une stabilité et un éventail de fonctionnalité très étendu : Modélisation des tables et des relations spécifiquement pour MySQL, Génération des scripts SQL et de la base de données MySQL, Création des [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Site officiel MySQL Workbench" href="http://www.mysql.fr/products/workbench/">MySQL Workbench</a> est un logiciel de modélisation de bases de données pour MySQL. Successeur du feu DB Designer, il offre une ergonomie d'utilisation, une stabilité et un éventail de fonctionnalité très étendu :</p>
<ul>
<li>Modélisation des tables et des relations spécifiquement pour MySQL,</li>
<li>Génération des scripts SQL et de la base de données MySQL,</li>
<li>Création des diagrammes à partir d'une base MySQL existante ou d'un script SQL.</li>
</ul>
<div id="attachment_52" class="wp-caption aligncenter" style="width: 310px"><a href="http://jerome.tamarelle.net/blog/wp-content/uploads/2009/12/mysql-workbench-diagram.png"><img class="size-medium wp-image-52" title="Diagramme sous MySQL Workbench" src="http://jerome.tamarelle.net/blog/wp-content/uploads/2009/12/mysql-workbench-diagram-300x172.png" alt="mysql-workbench-diagram" width="300" height="172" /></a><p class="wp-caption-text">Diagramme sous MySQL Workbench</p></div>
<p>Mais pour un projet contenant de nombreuses tables, il est parfois nécessaire d'effectuer des traitements automatiques sur celles-ci. MySQL Workbench est un logiciel "programmable", c'est-à-dire qu'il est possible de développer des script/plugins pour automatiser certaines tâches telles que :</p>
<ul>
<li>génération de code (<a title="MySQL Workbench Doctrine Plugin" href="http://code.google.com/p/mysql-workbench-doctrine-plugin/">comme le schema.yml de Doctrine</a>),</li>
<li>création de documentation,</li>
<li>modifications du schéma ...</li>
</ul>
<p>Le langage de programmation est LUA, celui-ci a une syntaxe proche de python, <a title="LUA" href="http://forge.mysql.com/wiki/Lua">quelques exemples de code</a> sont disponibles sur le wiki de MySQL.</p>
<p><span id="more-51"></span></p>
<p><em>Cet article a été écrit en utilisant <a title="Télécharger MySQL Workbench 5.2" href="http://dev.mysql.com/downloads/workbench/5.2.html">MySQL Workbench 5.2 OSS</a></em><em>.</em></p>
<span id="Excuter_des_commandes_LUA_dans_la_console_GRT"><h2>1. Exécuter des commandes LUA dans la console GRT</h2></span>
<p>MySQL Workbench propose une console pour la saisie de commandes simples. Pour la l'afficher depuis le menu :<br />
<strong>View&gt;Advenced&gt;GRT Shell</strong> ou au clavier <strong>CTRL+F3</strong>.</p>
<div id="attachment_53" class="wp-caption aligncenter" style="width: 310px"><a href="http://jerome.tamarelle.net/blog/wp-content/uploads/2009/12/mysql-workbench-grt-console.png"><img class="size-medium wp-image-53" title="GRT Shell" src="http://jerome.tamarelle.net/blog/wp-content/uploads/2009/12/mysql-workbench-grt-console-300x114.png" alt="mysql-workbench-grt-console" width="300" height="114" /></a><p class="wp-caption-text">Console d&#39;exécution de commande LUA</p></div>
<p>Vous pouvez essayer avec la commande suivante pour afficher le contenu du catalogue :</p>
<pre class="brush: python;">
print(grtV.getGlobal(&quot;/wb/doc/physicalModels/0/catalog&quot;))
</pre>
<span id="Crer_un_script_LUA_et_lexcuter"><h2>2. Créer un script LUA et l'exécuter</h2></span>
<p>Maintenant que nous savons exécuter des commandes simples, nous allons apprendre à créer un script LUA. Pour cela, il faut afficher l'explorateur de scripts en cliquant sur l'<strong>onglet GRT Shell</strong> dans la colonne de droite. Si cet onglet n'apparaît pas, cliquez sur l'icône noire <strong>Show GRT Schell IDE</strong>.</p>
<div id="attachment_56" class="wp-caption aligncenter" style="width: 122px"><a href="http://jerome.tamarelle.net/blog/wp-content/uploads/2009/12/mysql-workbench-grt-scripts.png"><img class="size-medium wp-image-56" title="Explorateur de scripts LUA" src="http://jerome.tamarelle.net/blog/wp-content/uploads/2009/12/mysql-workbench-grt-scripts-112x300.png" alt="mysql-workbench-grt-scripts" width="112" height="300" /></a><p class="wp-caption-text">Cliquer sur l&#39;onglet &quot;GRT Shell&quot; puis sur l&#39;icône &quot;New&quot; pour créer un nouveau script.</p></div>
<p>Cliquez sur l'icône <strong>New </strong>à gauche puis choisissez le type de fichier <strong>LUA Script File</strong>. Sous Windows, ceux-ci sont enregistré par défaut dans votre répertoire %APPDATA%\Roaming\MySQL\Workbench\scripts\</p>
<p>Essayez de coller ce qui suit dans l'éditeur de code qui apparait.</p>
<pre class="brush: python;">
-- Affichage de toutes les tables du catalogue
catalog = grtV.getGlobal(&quot;/wb/doc/physicalModels/0/catalog&quot;)
for i=1, grtV.getn(catalog.schemata) do
  print(&quot;Schema: &quot; .. catalog.schemata[i].name .. &quot;\n&quot;)
  for j=1, grtV.getn(catalog.schemata[i].tables) do
    print(&quot;  &quot; .. catalog.schemata[i].tables[j].name ..
	  &quot; (&quot; .. grtV.getn(catalog.schemata[i].tables[j].columns) .. &quot; attributs)\n&quot;)
  end
end
</pre>
<p>Enfin cliquez sur le bouton <strong>Execute</strong> et constatez le résultat. Vous pouvez modifier le code à votre convenance.</p>
<p>La fenêtre <strong>GRT Tree </strong>vous permet d'explorer l'arborescence des données de votre fichier MySQL Workbench pour vous aider au développement.</p>
<span id="Crer_un_pluginmodule"><h2>3. Créer un plugin/module</h2></span>
<p>Pour créer un plugin sous MySQL Workbench sous Windows Vista ou Seven, il est nécessaire d'<strong>exécuter ce logiciel en tant qu'administrateur </strong>pour qu'il ait les droits en écriture sur le répertoire %PROGRAMS%\MySQL\MySQL Workbench 5.1 OSS\modules.</p>
<p>Un plugin se crée de la même manière qu'un script LUA, mais celui-doit contenir des fonctions supplémentaires décrivant sont fonctionnement au logiciel. Faites donc de même en choisissant <strong>LUA GRT Module File</strong>.</p>
<div id="attachment_57" class="wp-caption aligncenter" style="width: 310px"><a href="http://jerome.tamarelle.net/blog/wp-content/uploads/2009/12/mysql-workbench-new-module.png"><img class="size-medium wp-image-57" title="Créer un plugin sous MySQL Workbench" src="http://jerome.tamarelle.net/blog/wp-content/uploads/2009/12/mysql-workbench-new-module-300x148.png" alt="mysql-workbench-new-module" width="300" height="148" /></a><p class="wp-caption-text">Créer un plugin sous MySQL Workbench</p></div>
<p>En choisissant l'un des deux templates, les fonctions de description du module sont pré-écrites. Votre plugin final sera architecturé comme décrit dans le schéma ci-dessous.</p>
<div id="attachment_58" class="wp-caption aligncenter" style="width: 301px"><a href="http://jerome.tamarelle.net/blog/wp-content/uploads/2009/12/mysql-workbench-plugin-skel.png"><img class="size-medium wp-image-58" title="Architecture d'un plugin MySQL Workbench" src="http://jerome.tamarelle.net/blog/wp-content/uploads/2009/12/mysql-workbench-plugin-skel-291x300.png" alt="mysql-workbench-plugin-skel" width="291" height="300" /></a><p class="wp-caption-text">Architecture d&#39;un plugin MySQL Workbench</p></div>
<p>C'est à vous de jouer maintenant. Vous pouvez vous inspirer des quelques plugins présents par défaut dans MySQL Workbench.</p>
<span id="Liens_:"><h3>Liens :</h3></span>
<ul>
<li><a title="Lua 5.1 Reference Manual" href="http://www.lua.org/manual/5.1/">Lua 5.1 Reference Manual</a><br />
Référence complète du langage LUA</li>
<li><a title="MySQL Workbench Plugins" href="http://forge.mysql.com/wiki/MySQL_Workbench_Plugins">MySQL Workbench Plugins</a><br />
Création et installation de plugins</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://jerome.tamarelle.net/blog/2009/12/developper-un-plugin-pour-mysql-workbench/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
