chore: show runtime DB server identity in db_diag

Add config and server-level DB identity fields (host/port/user, @@hostname/@@port/@@version) to packaging-units db_diag so production can verify the exact runtime DB endpoint.
This commit is contained in:
taekyoungc
2026-04-09 12:54:35 +09:00
parent cd2d41b3d7
commit 8e859f420d
2 changed files with 25 additions and 0 deletions

View File

@@ -343,7 +343,13 @@ class Bag extends BaseController
if ($this->request->getGet('db_diag') === '1') {
$dbDiag = [
'lg_idx' => $lgIdx,
'cfg_host' => null,
'cfg_port' => null,
'cfg_user' => null,
'db_name' => null,
'mysql_host' => null,
'mysql_port' => null,
'mysql_version' => null,
'packaging_unit' => null,
'code_kind' => null,
'code_detail' => null,
@@ -351,7 +357,20 @@ class Bag extends BaseController
];
try {
$db = db_connect();
$cfg = config('Database')->default ?? [];
$dbDiag['cfg_host'] = $cfg['hostname'] ?? null;
$dbDiag['cfg_port'] = isset($cfg['port']) ? (string) $cfg['port'] : null;
$dbDiag['cfg_user'] = $cfg['username'] ?? null;
$dbDiag['db_name'] = $db->database;
$meta = $db->query('SELECT @@hostname AS mysql_host, @@port AS mysql_port, @@version AS mysql_version, DATABASE() AS db_name')->getRowArray();
if (is_array($meta)) {
$dbDiag['mysql_host'] = $meta['mysql_host'] ?? null;
$dbDiag['mysql_port'] = isset($meta['mysql_port']) ? (string) $meta['mysql_port'] : null;
$dbDiag['mysql_version'] = $meta['mysql_version'] ?? null;
if (! empty($meta['db_name'])) {
$dbDiag['db_name'] = (string) $meta['db_name'];
}
}
$dbDiag['packaging_unit'] = (int) $db->table('packaging_unit')->where('pu_lg_idx', (int) $lgIdx)->countAllResults();
$dbDiag['code_kind'] = (int) $db->table('code_kind')->countAllResults();
$dbDiag['code_detail'] = (int) $db->table('code_detail')->countAllResults();