重构模型平台前后端并移除Redis依赖
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user