重构模型平台前后端并移除Redis依赖

This commit is contained in:
Winnie
2026-07-30 19:03:00 +08:00
commit c74b2abb48
172 changed files with 40825 additions and 0 deletions
@@ -0,0 +1,112 @@
"""demo workspaces and users
Revision ID: 20260728_0002
Revises: 20260724_0001
Create Date: 2026-07-28
"""
from collections.abc import Sequence
from alembic import op
revision: str = "20260728_0002"
down_revision: str | Sequence[str] | None = "20260724_0001"
branch_labels: str | Sequence[str] | None = None
depends_on: str | Sequence[str] | None = None
ADMIN_ROLE = "0000000000HNQN4KM476QNKW1C"
DEVELOPER_ROLE = "00000000005RCQ4GPGBK3WZYMM"
MODEL_WORKSPACE = "00000000000BM630VT9ARVFZPC"
RISK_WORKSPACE = "0000000000AE0NC0V5T424KK86"
ZHANG = "0000000000RF6FG1SDBXG59S13"
LI = "0000000000H2QYCGPCWQM1JSGS"
WANG = "0000000000RWG40ESZPGJT629J"
ZHAO = "00000000004CQV7WASJA6N6FW4"
def upgrade() -> None:
op.execute(
f"""
INSERT INTO roles
(role_id, role_code, role_name, role_scope, is_builtin)
VALUES
('{ADMIN_ROLE}', 'admin', '管理员', 'workspace', 1),
('{DEVELOPER_ROLE}', 'developer', '开发人员', 'workspace', 1)
ON DUPLICATE KEY UPDATE
role_name = VALUES(role_name),
role_scope = VALUES(role_scope)
"""
)
op.execute(
f"""
INSERT INTO users
(user_id, username, display_name, password_hash, status, email)
VALUES
('{ZHANG}', 'admin-zhang', '张三', 'demo-login-disabled', 'active',
'zhangsan@example.local'),
('{LI}', 'admin-li', '李四', 'demo-login-disabled', 'active',
'lisi@example.local'),
('{WANG}', 'dev-wang', '王五', 'demo-login-disabled', 'active',
'wangwu@example.local'),
('{ZHAO}', 'dev-zhao', '赵六', 'demo-login-disabled', 'active',
'zhaoliu@example.local')
ON DUPLICATE KEY UPDATE
username = VALUES(username),
display_name = VALUES(display_name),
status = 'active',
email = VALUES(email)
"""
)
op.execute(
f"""
INSERT INTO workspaces
(workspace_id, workspace_code, workspace_name, active_root_uri,
quota_bytes, used_bytes, status, created_by, description,
artifact_bucket, artifact_prefix)
VALUES
('{MODEL_WORKSPACE}', 'model-dev', '模型开发 Workspace',
'file:///workspace/workspaces/model-dev', 0, 0, 'active',
'{ZHANG}', '模型开发与脚本调度', 'model-platform',
'workspaces/model-dev'),
('{RISK_WORKSPACE}', 'risk-validation', '风险验证 Workspace',
'file:///workspace/workspaces/risk-validation', 0, 0, 'active',
'{LI}', '风险模型验证与批处理', 'model-platform',
'workspaces/risk-validation')
ON DUPLICATE KEY UPDATE
workspace_name = VALUES(workspace_name),
active_root_uri = VALUES(active_root_uri),
status = 'active',
description = VALUES(description)
"""
)
values = []
for workspace_id in (MODEL_WORKSPACE, RISK_WORKSPACE):
for user_id, role_id in (
(ZHANG, ADMIN_ROLE),
(LI, ADMIN_ROLE),
(WANG, DEVELOPER_ROLE),
(ZHAO, DEVELOPER_ROLE),
):
values.append(
f"('{workspace_id}', '{user_id}', '{role_id}', 'active')"
)
op.execute(
"""
INSERT INTO workspace_members
(workspace_id, user_id, role_id, member_status)
VALUES
"""
+ ",\n".join(values)
+ """
ON DUPLICATE KEY UPDATE
role_id = VALUES(role_id),
member_status = 'active'
"""
)
def downgrade() -> None:
# 演示身份可能已产生业务数据,降级时保留,避免破坏外键引用。
pass