Beispiel #1
0
def log_dbsql(request):
    '''获取分服sql语句接口
    '''
    #根据服务器获取分服数据库所需的SQL结构表信息
    server_id = int(request.GET.get('server_id', '') or 0)
    is_truncate_table = request.REQUEST.get('truncate','') == 'true'
    if not server_id:
        return HttpResponse('服务器不存在,请求失败.')
    sqls = []
    the_server = Server()
    the_server.id = server_id
    sqls.append(the_server.get_base_database_sql())        #创建数据库
    sqls.append('USE %s;' % the_server.db_name)
    if is_truncate_table:
        '''清数据的接口
        '''
        sqls.extend( LogDefine.get_truncate_table_sqls() )
        sqls.append('truncate table player_%d;' % server_id)
    else: 
        sqls.extend(the_server.get_create_player_table_sqls()) #创建player_表
        sqls.extend(the_server.get_create_gang_table_sqls())   #创建gang_表
        sqls.append(the_server.get_drop_base_log_sql())        #先删除下log基表
        sqls.append(the_server.get_create_base_log_sql())      #创建log_x基表
        
        log_defs = LogDefine.objects.filter(status=LogDefine.Status.NORMAL)
        for log_def in log_defs:
                sqls.append(log_def.get_create_table_sql())
                for create_index_sql in log_def.get_create_index_sqls(): #同步索引
                    sqls.append(create_index_sql)  
        for log_def in log_defs:
            for other_sql in log_def.get_other_sqls(is_sql_file=True): #触发器
                sqls.append(sql_handle(other_sql,server_id))
    
    return HttpResponse('\n'.join(sqls))