42 lines
1.5 KiB
SQL
42 lines
1.5 KiB
SQL
-- 管理端 wz-admin:POST /api/admin 登录账号(username + password)
|
||
-- 代码优先查 MySQL `admin_users`,使用 bcrypt 校验 `password_hash`。
|
||
-- 默认口令 admin123 的哈希由 golang.org/x/crypto/bcrypt DefaultCost 生成(与 AdminLogin 一致)。
|
||
--
|
||
-- 在 .env.development 指向的库执行(示例为 souldev,请按实际 DB 名修改 USE)。
|
||
-- 若 SKIP_AUTO_MIGRATE=1 且从未全量迁库,可能尚无 admin_users 表,下面含 CREATE IF NOT EXISTS。
|
||
|
||
USE souldev;
|
||
|
||
CREATE TABLE IF NOT EXISTS admin_users (
|
||
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||
username VARCHAR(64) NOT NULL,
|
||
password_hash VARCHAR(128) NOT NULL,
|
||
role VARCHAR(32) NOT NULL DEFAULT 'admin',
|
||
name VARCHAR(64) DEFAULT NULL,
|
||
status VARCHAR(16) NOT NULL DEFAULT 'active',
|
||
created_at DATETIME(3) NULL,
|
||
updated_at DATETIME(3) NULL,
|
||
deleted_at DATETIME(3) NULL,
|
||
PRIMARY KEY (id),
|
||
UNIQUE KEY idx_admin_users_username (username),
|
||
KEY idx_admin_users_deleted_at (deleted_at)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||
|
||
INSERT INTO admin_users (username, password_hash, role, name, status, created_at, updated_at)
|
||
VALUES (
|
||
'admin',
|
||
'$2a$10$f1SdpLVBRhy7hbq6XqmE5OSauzFg1etbCDBdsyIiKxc.Pm7ETBkBq',
|
||
'super_admin',
|
||
'本地练习',
|
||
'active',
|
||
UTC_TIMESTAMP(3),
|
||
UTC_TIMESTAMP(3)
|
||
)
|
||
ON DUPLICATE KEY UPDATE
|
||
password_hash = VALUES(password_hash),
|
||
role = VALUES(role),
|
||
status = VALUES(status),
|
||
name = VALUES(name),
|
||
updated_at = UTC_TIMESTAMP(3),
|
||
deleted_at = NULL;
|