""" 数据库迁移:角色权限配置表 """ 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()