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; + } }