MES-ETL/ConsoleApp2
2024-01-17 14:26:35 +08:00
..
Const Update 2024-01-04 09:00:44 +08:00
Helpers 修改 2024-01-12 16:50:37 +08:00
HostedServices 修改 2024-01-17 14:26:35 +08:00
Options 修改sql语句拼接 2024-01-17 10:05:29 +08:00
Services 修改 2024-01-17 14:26:35 +08:00
SimulationService 目标数据库增加配置 2024-01-17 11:40:16 +08:00
appsettings.json 优化内存分配 2024-01-17 14:26:13 +08:00
ConsoleApp2.csproj 修改 2024-01-12 16:50:37 +08:00
DataRecord.cs 整理代码 2024-01-16 18:00:23 +08:00
Program.cs 优化内存分配 2024-01-17 14:26:13 +08:00
README.md Update 2024-01-04 09:00:44 +08:00

说明

使用该程序来对MyDumper导出的CSV数据进行读取转换然后导出到其他数据库中。

  1. 用MyDumper从数据库导出CSV数据

    使用MyDumper Docker镜像

    docker run --rm --net=host -v D:/Dump:/home/backup mydumper/mydumper:v0.15.2-6 mydumper `
    -h 127.0.0.1 -P 33306 -u root -p 123456 `
    -B cferp_test --no-schemas --csv --hex-blob `
    -o /home/backup
    

    将挂载卷,数据库连接和输出目录替换
    不导出数据库结构(--no-schemas) 导出完的目录下应当包含.sql文件以及.dat文件

  2. 在Program.cs中修改CsvOptions配置

    host.Services.Configure<CsvOptions>(option =>
     {
         option.Delimiter = ",";
         option.QuoteChar = '"';
         option.InputDir = "D:/Dump/Test";
     });
    

    option.InputDir配置为MyDumper导出的数据目录

  3. 在Program.cs中修改DatabaseOutputOptions配置

    host.Services.Configure<DatabaseOutputOptions>(options =>
     {
         options.ConnectionString = new MySqlConnectionStringBuilder
         {
             Server = "127.0.0.1",
             Port = 33306,
             Database = "cferp_test_1",
             UserID = "root",
             Password = "123456",
             MaximumPoolSize = 50, 
         }.ConnectionString;
         options.MaxTask = 16;
         options.FlushCount = 200;
     });
    

    MySqlConnectionStringBuilder的属性修改为程序要导出至的数据库

    后续将这些配置通过命令行传递

  4. 运行程序

    注意,测试数据库cferp_test中的order_process_step表存在外键,如果要导出到和测试库同结构的数据库,记得先把外键删除。