[MySQL - CSV] Créer une table de base de données à partir d’un CSV
Préambule
Petite problématique rencontrée, un fichier CSV avec de très nombreuses colonnes à importer.
Solution
Le package csvkit permet de disposer de la commande csvsql. Cette dernière prend en paramètre un fichier CSV et le transforme en SQL.
csvsql -d , -e ISO-8859-15 monfichier.csv --insert --db "mysql://user:mdp@ip/name_database" -v --datetime-format "%d/%m/%Y %H:%M:%S" --tables nom_tableQuelques difficultés
- Présence d’antislash (\) dans le fichier CSV, on va doubler ces derniers par un petit sed :
sed -e 's/\\//' fichier_origine.csv > fichier_destination.csv
- ImportError : You don’t appear to have the necessary database backend installed for connection string you’re trying to use. - Installation du package : python3-pymysql
- Encodage :
file fichier_destination.csvnous permet d’avoir l’encodage utilisé.
- Date :
Utiliser la commande date pour retrouver l’encodage utilisé pour les dates dans votre fichier CSV. Exemple : 28/05/2019 15:55:19
date +"%d/%m/%y %H:%M:%S"Accueil > Linux > Développement > [MySQL - CSV] Créer une table de base de données à partir d’un CSV