Closed elvizlai closed 4 years ago
What did you do? Run sql script using DataGrip
DataGrip
What did you expect to see? reparo resolve log success.
reparo
What did you see instead? reparo resolve log failed, because of parse ddl failed.
"filter binlog failed: parse ddl: use xyz-abc; /* ApplicationName=DataGrip 2020.1 */ CREATE TABLE `medicine` (\r\n `id` int(11) NOT NULL AUTO_INCREMENT,\r\n `product_pzwh` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '批准文号',\r\n `product_format` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '规格',\r\n `product_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '名称',\r\n `product_manufacturer` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '生产企业',\r\n `product_barcode` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '条形码',\r\n `product_form` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '剂型',\r\n `product_wholesale_price` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '批发价格',\r\n `product_retail_price` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '零售价格',\r\n `create_time` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '创建时间',\r\n PRIMARY KEY (`id`) USING BTREE,\r\n INDEX `idx_barCode`(`product_barcode`) USING BTREE\r\n) ENGINE = InnoDB AUTO_INCREMENT = 1030333 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; failed: line 1 column 12 near \"-prod; /* ApplicationName=DataGrip 2020.1 */ CREATE TABLE `medicine` (\r\n `id` int(11) NOT NULL AUTO_INCREMENT,\r\n `product_pzwh` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '批准文号',\r\n `product_format` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '规格',\r\n `product_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '名称',\r\n `product_manufacturer` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '生产企业',\r\n `product_barcode` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '条形码',\r\n `product_form` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '剂型',\r\n `product_wholesale_price` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '批发价格',\r\n `product_retail_price` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '零售价格',\r\n `create_time` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '创建时间',\r\n PRIMARY KEY (`id`) USING BTREE,\r\n INDEX `idx_barCode`(`product_barcode`) USING BTREE\r\n) ENGINE = InnoDB AUTO_INCREMENT = 1030333 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;\" "
CAUTION: for historical reason, the name of database is xyz-abc not xyz_abc.
xyz-abc
xyz_abc
Trying download medicine_import.txt and rename medicine_import.sql and exec.
medicine_import.txt
medicine_import.sql
drainer -V
Release Version: v3.0.12 Git Commit Hash: e4f2ba252977385faa32a0553808cc564d22929a Build TS: 2020-03-16 12:36:21 Go Version: go1.13 Go OS/Arch: linux/amd64
@elvizlai Thanks for your report, this is caused by the database name is not quote, so when it contains the reserved characters, reparo will fail to parse the DDL. We will fix it.
Bug Report
What did you do? Run sql script using
DataGrip
What did you expect to see?
reparo
resolve log success.What did you see instead?
reparo
resolve log failed, because of parse ddl failed.CAUTION: for historical reason, the name of database is
xyz-abc
notxyz_abc
.Trying download
medicine_import.txt
and renamemedicine_import.sql
and exec.drainer -V
in terminal to get drainer's version)medicine_import.txt