Le plugin Content IO permet aussi d'exporter ses contenus dans une base SQL. Actuellement, l'export ne fonctionne que sur une base MySQL ou Oracle.
Fonctionnement :
L'export SQL va parcourir la structure des types de contenu définis et créer les différentes tables associées. Ensuite il parcourra les contenus et remplira ces tables.
Voici les différentes spécificités de l'export :
L'export ne gère pas les données : géocode multiple et multilingual multiple
Configuration :
Il faut définir sa base SQL dans la configuration du CMS.
De plus on peut définir un email d'administrateur. C'est lui qui recevra les informations de l'export SQL.
Lancer l'export :
Il y a deux façons de lancer l'export :
Il faut ensuite confirmer le lancement de l'export :
Fichier de configuration :
L'export SQL des contenus est lié à un fichier de configuration content-export.xml :
<export exportNoMultiValuedTable="false" separator="," exportOnlyValidatedContent="false" prefix="AE"> <contents> <content id='content-type.ExportContentType' name='export' /> <content id='content-type.ExportContentType2' name='export2' /> <content id='content-type.ExportTableRef' name='tableref' /> </contents> <sql> <oracle> </oracle> <mysql> <long>INT</long> <string>TEXT</string> </mysql> </sql> <mapping-policy value="FULL" /> <reserved-words override="false"> <mysql> <word name="ACCESSIBLE" alias="ACCESSIBLE_2"/> ... <word name="ZEROFILL" alias="ZEROFILL_2"/> </mysql> <oracle> <word name="ACCESS" alias="ACCESS_2" /> ... <word name="ZONE" alias="ZONE_2" /> </oracle> </reserved-words> </export>
Balise ou Attribut |
Description |
exportNoMultiValuedTable |
Lors de l'export SQL, pour chaque donnée multiple, on créé une table associée à cette donnée. Si ce paramètre est à true, on ne créé pas de table pour ces valeurs multiples. A la place, toutes les valeurs seront concaténées dans une seule colonne.
Valeur par défaut : false |
separator |
Ce paramètre est lié à exportNoMultiValuedTable. Lors que exportNoMultiValuedTable est à true, on concatène les différentes valeurs d'un champ multiple. Ces valeurs sont séparées par un caractère défini par l'attribut separator.
Valeur par défaut : ", " |
exportOnlyValidatedContent |
Lorsque ce paramètre est à true, on exporte seulement la version publiée (LIVE) des contenus.
Valeur par défaut : false
Il faut chaque projet puisse positionner le tag LIVE lors de la validation d'un contenu. |
prefix |
Toutes les tables exportées commenceront par ce préfixe.
Valeur par défaut : AmetysExport
Il est conseillé d'en mettre un car avant chaque export, on supprime toutes les tables commençant par ce préfixe. Si le préfixe est vide, l'export supprimera toutes les tables de la base SQL. |
content |
Dans chaque balise content, on définit l'identifiant (id) du type de contenu qu'on veut exporter et dans name on définit le nom de la table associée à ce type de contenu. Si on ne définit rien pour name, ça sera le nom par défaut du type de contenu qui sera choisi.
Valeur par défaut : si aucune balise content n'est définie, tous les types de contenu seront exportés. |
sql | Ces balises permettent de définir un type SQL pour un type de donnée d'un contenu. Par exemple, ci-dessus, on dit que toutes les données de types Long dans Ametys seront de type INT pour MySQL Voici les différents types qu'on peut configurer avec leurs valeurs par défaut :
|
mapping-policy | Selon les configurations des différentes bases SQL, on peut avoir des problèmes de taille sur les noms des tables et des colonnes. C'est pour ça qu'on fournit 3 différentes règles de formatage des noms :
|
reserved-words |
C'est la liste des mots réservés pour MySQL ou ORACLE qui risquent donc de créer des problèmes lors de la création des tables.
Par défaut, il y a tous les mots réservés de MySQL et d'ORACLE. |
override |
Cet attribut est lié à reserved-words et il permet d'indiquer si les mots qu'on rajoute surchargent les mots définis par défaut ou se rajoutent à ceux-ci. Si override est à true, cela surchargera donc tous les mots réservés de MySQL et ORACLE.
Par défaut il est à false.
Il est conseillé de laisser override à false sinon il a des risques que l'export ne fonctionne plus. |