From 4f689d9881229d5c06f77d153876f216f8e09e2b Mon Sep 17 00:00:00 2001 From: augushong Date: Fri, 9 Jan 2026 21:37:21 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E5=91=BD=E4=BB=A4):=20=E5=BF=BD=E7=95=A5?= =?UTF-8?q?=E5=A4=87=E4=BB=BD=E8=A1=A8=E4=BB=A5=E9=81=BF=E5=85=8D=E5=9C=A8?= =?UTF-8?q?=E7=94=9F=E6=88=90=E6=96=B9=E6=A1=88=E6=97=B6=E5=8C=85=E5=90=AB?= =?UTF-8?q?=E5=AE=83=E4=BB=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extend/base/common/command/scheme/Make.php | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/extend/base/common/command/scheme/Make.php b/extend/base/common/command/scheme/Make.php index 3bb6a26..7951f9e 100644 --- a/extend/base/common/command/scheme/Make.php +++ b/extend/base/common/command/scheme/Make.php @@ -32,9 +32,15 @@ class Make extends Command $allTables = Db::getTables(); // 过滤掉忽略的表 $config = Config::get('scheme.ignore_tables', []); - $prefix = Config::get('database.connections.mysql.prefix'); + $connection = Config::get('database.default', 'mysql'); + $prefix = Config::get('database.connections.' . $connection . '.prefix', ''); + $backupPrefix = Config::get('scheme.backup_prefix', 'backup'); foreach ($allTables as $t) { + if ($this->isBackupTable($t, $prefix, $backupPrefix)) { + continue; + } + // 如果有前缀,去除前缀后再判断 $shortName = $t; if ($prefix && str_starts_with($t, $prefix)) { @@ -70,4 +76,15 @@ class Make extends Command } } } + + protected function isBackupTable(string $tableName, string $prefix, string $backupPrefix): bool + { + $basePrefix = $prefix . $backupPrefix; + if ($basePrefix === '') { + return false; + } + + $pattern = '/^' . preg_quote($basePrefix, '/') . '_?\\d{14}(?:_.*)?$/'; + return preg_match($pattern, $tableName) === 1; + } }