Charger table mysql depuis autres sources

Bonjour,
Pour partage, si cela peut aider.
Pour charger les tables MYSQL dolibarr depuis erp existant, via CSV.
Utilisation du script powershell suivant; à renommer en .ps1 dans windows
ce script utilise le net connector 5.0… la même méthode est à utiliser pour le script en net connector 8.0…
Méthode Bulkload, pratique pour des gros fichiers avec plus milliers de lignes.

# Load Data from SQL Server to MySQL via MySQLBulkLoader class
[System.Reflection.Assembly]::LoadWithPartialName("MySql.Data")
add-type -Path "C:\Program Files (x86)\MySQL\MySQLconnector\MySql.Data.dll";
$start = get-date; 
 
$csv_file = "C:\sql_tasks\llx_categorie_societe.txt";
$mysql_instance = 'XXXXXXXXXXXX';
$mysql_user = 'XXXXXXXXXXX';
$mysql_pwd = 'XXXXXXXXXXXXXXx';
 
$conn_str="server=XXXXXXXXXXXXXXXX;user=XXXXXXXXXXX;password=XXXXXXXXX;database=dolibd;port=XXXXX;CharSet=utf8";
$mysql_conn = new-object MySql.Data.MySqlClient.mysqlconnection;
$mysql_conn.ConnectionString = $conn_str;
$mysql_conn.Open();
$bulk = New-Object Mysql.data.MySqlClient.MySqlBulkLoader($mysql_conn);
 
$bulk.Local=$true; # this is important setting
$bulk.FileName = $csv_file;
$bulk.TableName = 'llx_categorie_societe'; #destination table on MySQL side
$bulk.FieldTerminator=',';
$bulk.NumberOfLinesToSkip=1;
$bulk.LineTerminator="\r\n";
$bulk.FieldQuotationCharacter = '"';
$bulk.FieldQuotationOptional = $false;
$bulk.Load() | out-null # without out-null, it will show # of rows inserted

$mysql_conn.Close(); 
1 « J'aime »

Bonjour,

vous devriez tester ce bouton, il est fort utile