如何将 RadiusManage 的用户导入新版的神行者专版计费

By 王老湿 at 2018-07-24 • 0人收藏 • 5159人看过

RadiusManage 使用了 freeradius 作为主要的认证计费引擎,他直接集成freeradius的数据库表结构,由于其特殊性,在RadiusManage的用户表中并没有存储用户密码,而界面上导出的用户也不包含密码,这为迁移数据造成了一定的障碍,迁移数据时根本搞不清楚密码到底存在哪里,怎么导出。

为了解决这个问题,我们提供了一个比较便捷的方法来导出RadiusManage的数据,并且直接导出成神行者专版计费的模板格式,可以轻松地进行二次整理再导入系统。

连接数据库

使用MySQL客户端连接你的 RadiusManage 数据库, 或者将RadiusManage的数据库完整备份导入你本地测试的MySQL服务器,好处是在做数据查询操作时不影响生产环境,也不用担心误操作引发故障。

导出区域数据

RadiusManage 里并没有组织区域的概念,这里我们将用户组导出为区域数据,通过以下SQL脚本来查询并导出数据:

  select 
   "NA" as parent_node_id,
   "1000" as node_id,
   rg.groupid  as area_id,
   rg.groupname as area_name,
   rg.descr as node_desc,
   "NA" as node_code,
   "NA" as manager,
   "NA" as phone,
   "NA" as address,
   "NA" as buss_time
from rm_usergroups rg

注意这里导出的仅仅是区域数据,你还需要对数据进行整理,手工添加一个ID为1000的组织作为所有区域的归属节点,注意不要修改或删除区域ID,因为区域ID已经被用户关联,修改或删除会破坏数据关联。

导出商品数据

RadiusManage 有一个服务表,每个用户都关联到一个服务,我们可以将他导出为商品表,通过以下SQL脚本来查询并导出数据:

  select
   1000 as node_id,
   "" as service_id,
   rs.srvid as product_id,
   rs.srvid as product_code,
   rs.srvname as product_name,
   "0.00" as price,
   "time" as acct_type,
   "m" as acct_cycle,
   "0" as flow_amount,
   "enabled" as service_status,
   0 as is_pub,
   "2020-12-30" as expire_date,
   CONCAT(rs.descr," CUSt_ATTR=> ",rs.custattr) as remark
from rm_services rs;

导出的商品ID即原RadiusManage 的服务ID,所有商品归属与ID为1000的组织,在神行者计费专版中,商品还需要有归属服务,请参考《神行者专版计费业务概念》, 因此还需要对这些原始数据进行整理,请尽量参考模板格式,注意不要改动或删除商品id,因为这些ID被用户关联,改动或删除会破坏数据关联

导出用户数据

导出用户数据时,我们结合已有的用户组表,服务表,用户表,freeradius的表进行关联查询导出,导出的格式遵循神行者计费专版的用户导入模板。通过以下SQL脚本来查询并导出数据:

  select 
   0 as userid,
   1000 as node_id,
   ru.groupid as area_id,
   ru.srvid as product_id,
   ru.firstname,
   "" as idcard,
   ru.mobile,
   ru.address,
   "enabled" as status,
   CONCAT(ru.createdon ," 00:00:00") as create_time,
   ru.expiration,
   "0.00" as banlance,
   ru.username,
   rc.value as passwd,
   1 as online_limit,
   0 as flows,
   round(ru.uplimit / 1024,2) as up_rate,
   round(ru.downlimit /1024,2) as down_rate,
   "" as up_code,
   "" as down_code,
   "" as domain,
   "" as policy,
   "" as proxy_user,
   "" as proxy_pwd,
   ru.`comment`
   from rm_users ru, radcheck rc
   where ru.username = rc.username
and rc.attribute = "Cleartext-Password"

注意,用户ID,请通过Excel来自动生成连续不重复的ID,其他的数据,请根据实际情况进行调整。

通过神行者专版计费的导入模板进行综合调整,使数据最终符合倒入要求,在整理的过程中,也可以清理掉一些无效的数据。

具体流程请参考《神行者专版计费数据导入》






登录后方可回帖

Loading...