57 lines
2.0 KiB
Python
57 lines
2.0 KiB
Python
"""
|
|
数据库迁移:角色权限配置表
|
|
"""
|
|
import pymysql
|
|
from config import DB_CONFIG
|
|
|
|
def migrate():
|
|
conn = pymysql.connect(
|
|
host=DB_CONFIG["host"],
|
|
port=DB_CONFIG["port"],
|
|
user=DB_CONFIG["user"],
|
|
password=DB_CON…d"],
|
|
database=DB_CONFIG["database"],
|
|
charset="utf8mb4"
|
|
)
|
|
cursor = conn.cursor()
|
|
|
|
cursor.execute("""
|
|
CREATE TABLE IF NOT EXISTS role_permissions (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
role VARCHAR(50) NOT NULL COMMENT '角色标识',
|
|
page VARCHAR(50) NOT NULL COMMENT '页面标识',
|
|
permission TINYINT DEFAULT 1 COMMENT '权限 1=允许 0=禁止',
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
UNIQUE KEY uk_role_page (role, page)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色页面权限配置'
|
|
""")
|
|
|
|
# 插入默认权限(与硬编码一致)
|
|
defaults = {
|
|
'dashboard': ['admin','procurement_planner','procurement_follower','product_developer','operator'],
|
|
'data': ['admin','procurement_follower','operator'],
|
|
'inventory': ['admin','procurement_planner','procurement_follower','product_developer','operator'],
|
|
'planning': ['admin','procurement_planner','procurement_follower','product_developer','operator'],
|
|
'products': ['admin','procurement_planner','procurement_follower','product_developer','operator'],
|
|
'warehouse': ['admin'],
|
|
'suppliers': ['admin','procurement_planner','procurement_follower'],
|
|
'logs': ['admin'],
|
|
'config': ['admin'],
|
|
'users': ['admin'],
|
|
}
|
|
|
|
for page, roles in defaults.items():
|
|
for role in roles:
|
|
cursor.execute(
|
|
"INSERT IGNORE INTO role_permissions (role, page, permission) VALUES (%s, %s, 1)",
|
|
(role, page)
|
|
)
|
|
|
|
conn.commit()
|
|
cursor.close()
|
|
conn.close()
|
|
print("✅ 角色权限表创建成功,已插入默认权限")
|
|
|
|
if __name__ == "__main__":
|
|
migrate()
|