From d4a1c86b936d460cc41e7a1a2ccf77a6ea7bc45f Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Wed, 21 Sep 2022 20:41:21 +0800 Subject: [PATCH] =?UTF-8?q?DNS=E8=AE=BF=E9=97=AE=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=E8=A1=A8=E5=B7=B2=E7=BB=8F=E5=AD=98=E5=9C=A8?= =?UTF-8?q?=E6=97=B6=E4=B8=8D=E6=8F=90=E7=A4=BA=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/db/models/db_node_initializer.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/internal/db/models/db_node_initializer.go b/internal/db/models/db_node_initializer.go index 81f9361a..ebdefb52 100644 --- a/internal/db/models/db_node_initializer.go +++ b/internal/db/models/db_node_initializer.go @@ -164,8 +164,8 @@ func findNSAccessLogTable(db *dbs.DB, day string, force bool) (string, error) { return "", err } - tableName := "edgeNSAccessLogs_" + day - cacheKey := tableName + "_" + fmt.Sprintf("%d", crc32.ChecksumIEEE([]byte(config.Dsn))) + var tableName = "edgeNSAccessLogs_" + day + var cacheKey = tableName + "_" + fmt.Sprintf("%d", crc32.ChecksumIEEE([]byte(config.Dsn))) if !force { accessLogLocker.RLock() @@ -191,6 +191,14 @@ func findNSAccessLogTable(db *dbs.DB, day string, force bool) (string, error) { // 创建表格 _, err = db.Exec("CREATE TABLE `" + tableName + "` (\n `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',\n `nodeId` int(11) unsigned DEFAULT '0' COMMENT '节点ID',\n `domainId` int(11) unsigned DEFAULT '0' COMMENT '域名ID',\n `recordId` int(11) unsigned DEFAULT '0' COMMENT '记录ID',\n `content` json DEFAULT NULL COMMENT '访问数据',\n `requestId` varchar(128) DEFAULT NULL COMMENT '请求ID',\n `createdAt` bigint(11) unsigned DEFAULT '0' COMMENT '创建时间',\n `remoteAddr` varchar(128) DEFAULT NULL COMMENT 'IP',\n PRIMARY KEY (`id`),\n KEY `nodeId` (`nodeId`),\n KEY `domainId` (`domainId`),\n KEY `recordId` (`recordId`),\n KEY `requestId` (`requestId`),\n KEY `remoteAddr` (`remoteAddr`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='域名服务访问日志';") if err != nil { + if CheckSQLErrCode(err, 1050) { // Error 1050: Table 'xxx' already exists + accessLogLocker.Lock() + nsAccessLogTableMapping[cacheKey] = true + accessLogLocker.Unlock() + + return tableName, nil + } + return tableName, err }