Planificateur de migration CSV vers base de donnees

Infere un schema relationnel a partir dun CSV et genere CREATE TABLE et ALTER pour PostgreSQL, MySQL, SQLite ou SQL Server

Collez un CSV ou chargez un fichier. Loutil inspecte chaque colonne, deduit les types SQL, suggere une cle primaire, remonte des pistes de cle et dindex, puis produit le DDL selon la base cible.

Mode demploi :

  • Entree CSV / Fichier CSV : fournissez un jeu avec ligne dentetes
  • Nom de table : nom cible dans le SQL genere
  • Base cible : PostgreSQL, MySQL, SQLite ou SQL Server
  • Schema existant : CREATE TABLE ou DDL actuel pour generer des ALTER ADD
  • Overrides de schema (JSON) : permet de corriger les types ou les indexes, par exemple {"price":"DECIMAL(14,4)","customer_id":{"type":"BIGINT","index":true}}
  • Generer plan ALTER : ajoute les ALTER si un schema existant est fourni

Loutil deduit :

  • texte, entier, decimal, booleen, date et date-heure
  • nullable ou non
  • candidats cle primaire comme id, *_id, code ou uuid
  • pistes de cle etrangere pour userid ou productid
  • suggestions dindex pour les colonnes a forte cardinalite

Exemples de résultats

1 Exemples

Transformer un CSV de commandes en schema PostgreSQL initial

Deduit types, cle primaire et indexes pour fournir un premier brouillon DDL.

Inferred schema for customer_orders
Voir paramètres d'entrée
{ "csvInput": "id,customer_id,email,total,created_at,status\n1,10,[email protected],120.50,2026-04-05,paid\n2,11,[email protected],40.00,2026-04-06,pending", "csvFile": "", "tableName": "customer_orders", "targetDatabase": "postgresql", "existingSchema": "CREATE TABLE customer_orders (\n id INTEGER PRIMARY KEY\n);", "schemaOverrides": "{\"status\":\"VARCHAR(32)\",\"customer_id\":{\"type\":\"BIGINT\",\"index\":true}}", "generateAlterPlan": true }

Click to upload file or drag and drop file here

Maximum file size: 20MB Supported formats: text/csv, text/plain, .csv

Points clés

Catégorie
Données et tableaux
Types d’entrée
textarea, file, text, select, checkbox
Type de sortie
html
Couverture des échantillons
4
API disponible
Yes

Vue d’ensemble

Ce planificateur de migration analyse vos fichiers CSV pour en déduire automatiquement un schéma relationnel et générer le code SQL correspondant. Il identifie les types de données, suggère des clés primaires ou étrangères, et produit les requêtes CREATE TABLE et ALTER adaptées pour PostgreSQL, MySQL, SQLite ou SQL Server.

Quand l’utiliser

  • Lors de l'importation d'un nouveau jeu de données brut vers une base de données relationnelle.
  • Pour générer rapidement un script de migration SQL (ALTER TABLE) à partir d'un schéma existant et d'un nouveau fichier CSV.
  • Quand vous avez besoin d'inférer les types de colonnes (entier, date, booléen) et les index sans écrire le DDL manuellement.

Comment ça marche

  • Fournissez vos données via l'entrée texte ou en téléversant un fichier CSV contenant une ligne d'en-têtes.
  • Sélectionnez le moteur de base de données cible (PostgreSQL, MySQL, SQLite ou SQL Server) et définissez le nom de la table.
  • (Optionnel) Ajoutez un schéma existant pour générer un plan ALTER ou utilisez un JSON d'écrasement pour forcer certains types de données.
  • L'outil analyse les colonnes, déduit les types SQL optimaux, et génère le code DDL prêt à être exécuté.

Cas d’usage

Création initiale d'une table SQL à partir d'un export de données client ou produit.
Mise à jour d'une structure de base de données existante suite à l'ajout de nouvelles colonnes dans un rapport CSV régulier.
Prototypage rapide d'un modèle de données relationnel pour une application à partir de fichiers plats.

Exemples

1. Création d'une table de commandes PostgreSQL

Développeur Backend
Contexte
Un développeur doit intégrer un historique de commandes fourni au format CSV dans une nouvelle base de données.
Problème
Écrire manuellement le DDL pour une table avec de nombreuses colonnes et des types variés (dates, décimales, identifiants) est fastidieux.
Comment l’utiliser
Coller le CSV dans l'entrée, nommer la table 'orders', choisir PostgreSQL et laisser l'outil déduire les types.
Résultat
L'outil génère un CREATE TABLE avec les bons types (TIMESTAMP, DECIMAL, VARCHAR) et définit la colonne id comme clé primaire.

2. Mise à jour d'une table existante avec de nouvelles colonnes

Administrateur de Base de Données (DBA)
Contexte
Le département marketing fournit un nouveau fichier CSV de prospects contenant trois nouvelles colonnes par rapport au mois précédent.
Problème
Identifier les nouvelles colonnes et générer les requêtes ALTER TABLE sans casser le schéma actuel.
Comment l’utiliser
Téléverser le fichier CSV, coller l'ancien CREATE TABLE dans 'Schéma existant', et cocher 'Générer plan ALTER'.
Configuration d’exemple
CREATE TABLE leads (
  id INT PRIMARY KEY,
  email VARCHAR(255)
);
Résultat
L'outil détecte les nouvelles colonnes du CSV et produit les instructions ALTER TABLE correspondantes pour mettre à jour la base.

3. Forcer des types spécifiques via JSON

Data Engineer
Contexte
Lors de l'import d'un catalogue de produits, les prix sont parfois entiers dans le CSV, mais doivent être stockés en décimal.
Problème
L'inférence automatique risque de choisir INTEGER au lieu de DECIMAL pour la colonne des prix.
Comment l’utiliser
Utiliser le champ 'Overrides de schéma (JSON)' pour imposer le type exact et ajouter un index sur la catégorie.
Configuration d’exemple
{
  "price": "DECIMAL(14,4)",
  "category_id": {
    "type": "BIGINT",
    "index": true
  }
}
Résultat
Le DDL généré respecte les contraintes manuelles pour le prix et crée un index sur category_id, tout en inférant le reste automatiquement.

Tester avec des échantillons

json, csv, sql

Hubs associés

FAQ

Quels moteurs de base de données sont pris en charge ?

L'outil génère du code SQL compatible avec PostgreSQL, MySQL, SQLite et SQL Server.

Comment l'outil détermine-t-il les types de données ?

Il inspecte les valeurs de chaque colonne du CSV pour déduire s'il s'agit de texte, d'entiers, de décimales, de booléens, de dates ou de dates-heures.

Puis-je forcer un type de données spécifique ?

Oui, le champ Overrides de schéma (JSON) permet de forcer un type ou un index pour une colonne précise.

Comment fonctionne la génération du plan ALTER ?

Si vous fournissez le code CREATE TABLE actuel, l'outil compare les colonnes du CSV avec ce schéma et génère les requêtes ALTER TABLE ADD pour les nouvelles colonnes.

L'outil détecte-t-il les clés primaires et étrangères ?

Oui, il suggère des clés primaires pour les colonnes uniques comme id ou uuid, et donne des pistes de clés étrangères pour les colonnes comme user_id.

Documentation de l'API

Point de terminaison de la requête

POST /fr/api/tools/csv-to-database-migration-planner

Paramètres de la requête

Nom du paramètre Type Requis Description
csvInput textarea Non -
csvFile file (Téléchargement requis) Non -
tableName text Non -
targetDatabase select Non -
existingSchema textarea Non -
schemaOverrides textarea Non -
generateAlterPlan checkbox Non -

Les paramètres de type fichier doivent être téléchargés d'abord via POST /upload/csv-to-database-migration-planner pour obtenir filePath, puis filePath doit être passé au champ de fichier correspondant.

Format de réponse

{
  "result": "
Processed HTML content
", "error": "Error message (optional)", "message": "Notification message (optional)", "metadata": { "key": "value" } }
HTML: HTML

Documentation de MCP

Ajoutez cet outil à votre configuration de serveur MCP:

{
  "mcpServers": {
    "elysiatools-csv-to-database-migration-planner": {
      "name": "csv-to-database-migration-planner",
      "description": "Infere un schema relationnel a partir dun CSV et genere CREATE TABLE et ALTER pour PostgreSQL, MySQL, SQLite ou SQL Server",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=csv-to-database-migration-planner",
      "command": "",
      "args": [],
      "env": {},
      "isActive": true,
      "type": "sse"
    }
  }
}

Vous pouvez chaîner plusieurs outils, par ex.: `https://elysiatools.com/mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp`, max 20 outils.

Prend en charge les liens de fichiers URL ou la codification Base64 pour les paramètres de fichier.

Si vous rencontrez des problèmes, veuillez nous contacter à [email protected]