Elastix(fop2) export sqlite3 vers mysql

Objectif :

Script qui permet d’exporter tous les contact de FOP2 (sqlite3) vers une table mysql « contact » identique.

Table mysql

– Créer une base de donnée && un utilisateur qui va bien

 


– créer une table contact


Script

Dans ledossier /var/www/replicationContact créer un fichier export.sh

Pour info j’ai du utiliser le mot de passe root car dans le script ce user ne fonctionnait pas….

Cron

Penser à  faire un cron qui excute export.sh tous les jours.

Vérifier les droits sur le dossier replicationContact et export:

Astuce pour tester la mise en place on peut lancer le cron toutes les minutes :

Mysql : convertir un select en csv

Actuce

Cette astuce permet de générer un fichier csv directement à  partir d’une requête mysql.

Petit bémol les champs vide sont remplacé par NULL systématiquement.

Perso j’utilise généralement cette astuce dans des bash donc derrière je fais un rechercher/remplacer pour virer les NULL du type :

Export mysql vers sqlite3 en shell

Ce tuto permet d’exporter certain champs d’une table mysql et de les importer dans une table sqlite3.

Prérequis :

  • Un dossier /var/www/replication/ qui contiendra nos scripts.
  • Un dossier /var/www/db/ qui contient les base de données sqlite dont address_book.db qui nous intéresse.
  • Une base de donnée mysql avec une table dont on veut exporter des champs

Le dossier replication contiendra 3 fichiers :

  • replication.sh : le bash que l’on exécutera
  • importer.sql : qui contient les actions sqlite3
  • transfert.csv : généré dynamiquement pour le transfert

replication.sh

importer.sql

transfert.csv

Il contiendra des données au format csv.

SQL CAST: comparer des colonnes de type différents

En SQL pour comparer par exemple des nombres qui sont stockés dans des colonnes de type vachar, vous risquez d’avoir des problème (surtout avec MS SQL). Une astuce :

Exemple de type :

  • real
  • int
  • decimal(9,7)
  • float

ex :  soit les colonnes TarifA et TarifB

Perso pour comparer des nombre je prends le type real pour tous.