Scripts et utilitaires
Voici des scripts qui peuvent s'avérer utiles dans certaines situations.
Pour exécuter un script, il faut impérativement pouvoir utiliser un terminal (« invite de commande ») pour y écrire et lancer des commandes.
ImportsV1
: Importer des données depuis Robert 1
Avec ce script, il est possible d'importer des données dans Robert2 à partir de la base de données de la première version de Robert (v0.6.x) ! Actuellement, les données suivantes peuvent être importées :
- Matériel
- Techniciens
Important
Si vous avez déjà créé du matériel ou autre dans votre Robert2, il est recommandé de faire une sauvegarde de votre base de données avant de procéder à l'import de données.
Voici en détail comment procéder :
1. Exporter les données de Robert 1 au format PHP
Avant tout, il faut sortir chaque table utile de la base de données d'origine, dans des fichiers au format PHP array
.
Pour cela, ouvrez votre PHPMyAdmin sur la base de données de Robert 1, puis sélectionnez la table robert_matos_detail
, et allez dans l'onglet "Exporter". Dans le menu déroulant de la section "Format" en bas de page, choisissez le format "PHP array". Enfin, cliquez sur le bouton "Exécuter" pour sauvegarder le fichier sur votre ordinateur.
Et recommencez l'opération pour la table robert_tekos
, si besoin.
2. Vérifier et corriger le(s) fichier(s) exportés
Les fichiers créés à l'étape précédente devraient contenir quelque chose ressemblant à ceci :
$robert_matos_detail = array(
array('id' => '1','label' => 'Super matos','ref' => 'SP','panne' => '0','externe' => '0','categorie' => 'son','sousCateg' => '1','Qtotale' => '10','tarifLoc' => '15.55','valRemp' => '299.9','dateAchat' => NULL,'ownerExt' => '','remarque' => ''),
array('id' => '2','label' => 'Autre matos','ref' => 'AM','panne' => '2','externe' => '0','categorie' => 'lumiere','sousCateg' => '17','Qtotale' => '12','tarifLoc' => '264.3','valRemp' => '1545.55','dateAchat' => NULL,'ownerExt' => '','remarque' => ''),
array('id' => '3','label' => 'Cuillère','ref' => 'Cuil','panne' => '0','externe' => '1','categorie' => 'son','sousCateg' => '1','Qtotale' => '125','tarifLoc' => '1.05','valRemp' => '6.5','dateAchat' => NULL,'ownerExt' => '','remarque' => '')
// (...)
);
Tout ce que vous avez à faire ici, c'est :
- Modifier la première ligne du fichier en changeant
$robert_matos_detail =
par le motreturn
. Ce qui donnera :return array(
pour cette première ligne. De même pour les autres fichiers, il faudra toujours changer le nom de la table par le motreturn
. - Renommer le fichier selon l'entité. Par exemple ici, le fichier créé par PHPMyAdmin s'appelle "robert_matos_detail.php". Il faut le nommer avec le nouveau nom de l'entité du matériel dans Robert2, à savoir :
materials.php
. Voir plus bas pour la correspondance des noms des fichiers pour les autres entités. - Placer ce(s) fichier(s) dans le dossier
data/imports
du projet.
Maintenant c'est prêt, on peut procéder à l'importation dans Robert2 !
3. Lancer le script
Ouvrez un terminal, et placez-vous à la racine du dossier du projet :
cd /chemin/vers/votre/Robert2
Ensuite, vous pouvez lancer le script de deux manières possibles :
- Avec composer, utilisez la commande :
composer Robert:importsV1 import materials
- Si vous n'utilisez pas composer (typiquement si vous avez téléchargé un ZIP de Robert2 "compilé"), utilisez la commande :
php -f utilities/Scripts/ImportsV1/run import materials
(attention à bien utiliser une version de PHP supérieure à la 7.1)
Bien entendu, pour les autres entités, il suffit de remplacer le dernier argument (ici materials
) par le nom de l'entité choisie. Et voilà, le script va utiliser le fichier PHP des données exportées, pour les traduire vers la base de données de Robert2.
Voici en détail ce qu'il se passe, pour chaque entité importée :
Entité | Table dans Robert 1 | Fichier utilisé pour l'import | Argument du script | Détails sur le script |
---|---|---|---|---|
Matériel | matos_detail |
data/imports/ materials.php |
materials |
- Importe tout le matériel. - Crée les catégories de base, mais pas les sous-catégories. - Crée des parcs de matériel supplémentaires pour chaque "ownerExt" différent trouvé dans la table d'origine. - Attention, la valeur du champ ref ne doit pas comporter de ponctuation ! |
Techniciens | tekos |
data/imports/ technicians.php |
technicians |
- Importe tous les techniciens (persons avec le tag des techniciens).- Utilise le champ note pour y mettre toutes les autres données comme la date de naissance ou autre (numéro GUSO, CS, etc.).- Attention, ne crée pas d'utilisateur associé aux techniciens ! |