def format_php_data_params(): global _table_list global _db_name global _file_path global _db tableNames = get_db_table_list(_db_name) print(tableNames) if None == tableNames: print('NULL INFO') tab = '\t' linesep = file_utils.get_line_sep() for tableName in tableNames: tbname = tableName['TABLE_NAME'] if tbname not in _table_list: continue sqlInfo = u'SELECT ' tableColumns = get_db_table_column_list(_db_name, tableName['TABLE_NAME']) print(tableColumns) if None == tableColumns: continue for column in tableColumns: sqlInfo = '%s \'%s\' => $%s , %s' % ( sqlInfo, column['COLUMN_NAME'], column['COLUMN_NAME'], os.linesep) sqlInfo = '%s FROM `%s` AS a ' % (sqlInfo[0:-1], tableName['TABLE_NAME']) file_utils.write_file(_file_path + tableName['TABLE_NAME'] + '.log', sqlInfo + os.linesep, 'a')
def format_php_info_object(): global _table_list global _db_name global _file_path global _db tableNames = get_db_table_list(_db_name) print(tableNames) if None == tableNames: print('NULL INFO') tab = '\t' linesep = file_utils.get_line_sep() for tableName in tableNames: if tableName['TABLE_NAME'] not in _table_list: continue tableColumns = get_db_table_column_list(_db_name, tableName['TABLE_NAME']) print(tableColumns) if None == tableColumns: continue classInfo = '' for column in tableColumns: classInfo = '''%s%s//%s%s%s$item->%s = %s;%s''' % ( classInfo, tab, column['COLUMN_COMMENT'], linesep, tab, column['COLUMN_NAME'], '""', linesep) file_utils.write_file(_file_path + tableName['TABLE_NAME'] + '.log', classInfo + os.linesep, 'a')
def format_column_list(): global _table_list global _db_name global _file_path global _db tableNames = get_db_table_list(_db_name) print(tableNames) if None == tableNames: print('NULL INFO') tab = '\t' linesep = file_utils.get_line_sep() for tableName in tableNames: tbname = tableName['TABLE_NAME'] if tbname not in _table_list and len(_table_list) > 0: continue sqlInfo = u'[' tableColumns = get_db_table_column_list(_db_name, tableName['TABLE_NAME']) print(tableColumns) if None == tableColumns: continue for column in tableColumns: sqlInfo = "%s'%s', " % (sqlInfo, column['COLUMN_NAME']) sqlInfo = '%s ]' % (sqlInfo[0:-2]) file_utils.write_file(_file_path + tableName['TABLE_NAME'] + '.log', sqlInfo + os.linesep, 'a')
def format_update_sql(): global _table_list global _db_name global _file_path global _db global _sql_params_type tableNames = get_db_table_list(_db_name) print(tableNames) if None == tableNames: print('NULL INFO') tab = '\t' linesep = file_utils.get_line_sep() for tableName in tableNames: tbname = tableName['TABLE_NAME'] if tbname not in _table_list and len(_table_list) > 0: continue sqlInfo = u'UPDATE `%s` SET ' % (tableName['TABLE_NAME']) pinfo = '' tableColumns = get_db_table_column_list(_db_name, tableName['TABLE_NAME']) print(tableColumns) if None == tableColumns: continue for column in tableColumns: # sqlInfo = '%s `%s` = ? ,' % (sqlInfo, column['COLUMN_NAME']) if _sql_params_type == 2: sqlInfo = sqlInfo + '`' + column['COLUMN_NAME'] + '` = %s ,' else: sqlInfo = sqlInfo + '`' + column[ 'COLUMN_NAME'] + '` = {' + column['COLUMN_NAME'] + '} ,' # sqlInfo = '%s ) VALUES (%s) ' % (sqlInfo[0:-1], pinfo[0:-1]) sqlInfo = sqlInfo[0:-1] file_utils.write_file(_file_path + tableName['TABLE_NAME'] + '.log', sqlInfo + os.linesep, 'a')
def format_domain(): global _table_list global _db_name global _file_path global _db tableNames = get_db_table_list(_db_name) print(tableNames) if None == tableNames: print('NULL INFO') tab = '\t' linesep = file_utils.get_line_sep() for tableName in tableNames: tbname = tableName['TABLE_NAME'] if tbname not in _table_list and len(_table_list) > 0: continue classInfo = u'public class %s { %s' % (tableName['TABLE_NAME'], linesep) tableColumns = get_db_table_column_list(_db_name, tableName['TABLE_NAME']) print(tableColumns) if None == tableColumns: continue for column in tableColumns: t = 'UnKnow' c = column['DATA_TYPE'].lower() if c in [ 'varchar', 'text', 'char', 'longtext', 'enum', 'mediumtext', 'tinytext' ]: t = 'String' elif c in ['int', 'tinyint', 'smallint', 'mediumint', 'bit']: t = 'Integer' elif c in ['bigint']: t = 'Long' elif c in ['float', 'double', 'boolean', 'decimal', 'peal']: t = 'Double' elif c in ['date', 'datetime', 'timestamp', 'time', 'year']: t = 'Date' classInfo = '''%s%s%s/* %s%s * %s%s%s */%s%sprivate %s %s;%s''' % ( classInfo, linesep, tab, linesep, tab, column['COLUMN_COMMENT'], linesep, tab, linesep, tab, t, column['COLUMN_NAME'], linesep) classInfo = '%s}' % (classInfo) file_utils.write_file(_file_path + tableName['TABLE_NAME'] + '.log', classInfo + os.linesep, 'a')
def format_php_data_domain(): global _table_list global _db_name global _file_path global _db tableNames = get_db_table_list(_db_name) print(tableNames) if None == tableNames: print('NULL TABLE') temp = file_utils.read_all_file('./temp.php') linesep = file_utils.get_line_sep() for tableName in tableNames: tbname = tableName['TABLE_NAME'] if tbname not in _table_list: continue tbs = tbname.split('_') tbs2 = [] for tb in tbs: tbs2.append(tb.capitalize()) dmName = 'Data' + ''.join(tbs2) tableColumns = get_db_table_column_list(_db_name, tbname) if None == tableColumns: continue fields = '' fid = tableColumns[0]['COLUMN_NAME'] fname = tableColumns[0]['COLUMN_NAME'] for column in tableColumns: t = 'string' c = column['DATA_TYPE'].lower() if c in [ 'varchar', 'text', 'char', 'longtext', 'enum', 'mediumtext', 'tinytext' ]: t = "string" elif c in ['int', 'tinyint', 'smallint', 'mediumint', 'bit']: t = 'int' elif c in ['bigint']: t = 'int' elif c in ['float', 'double', 'boolean', 'decimal', 'peal']: t = 'float' elif c in ['date', 'datetime', 'timestamp', 'time', 'year']: t = "string" if 'name' == column['COLUMN_NAME']: fname = column['COLUMN_NAME'] if 'title' == column['COLUMN_NAME']: fname = column['COLUMN_NAME'] fields = '''%s%s $fields['%s'] = $this->setFieldInfo('%s' ,'%s' ,0 , '%s'); ''' % ( fields, linesep, column['COLUMN_NAME'], column['COLUMN_NAME'], t, column['COLUMN_COMMENT']) domain = temp.replace('{DomainName}', dmName) domain = domain.replace('{TableName}', tbname) domain = domain.replace('{fields}', fields) domain = domain.replace('{id}', fid) domain = domain.replace('{name}', fname) file_utils.write_file(_file_path + dmName + '.php', domain + os.linesep, 'a') return
def format_gorm_domain(): global _table_list global _db_name global _file_path global _db tableNames = get_db_table_list(_db_name) if None == tableNames: logging.info('NULL INFO') return _file_path = os.path.split(os.path.realpath( __file__))[0] + os.sep + 'template' + os.sep + 'po' + os.sep file_utils.mkdirs(_file_path, True) tab = ' ' * 4 linesep = file_utils.get_line_sep() columnNames = {} tableNamess = {} for tableName in tableNames: tbname = tableName['TABLE_NAME'] if tbname not in _table_list and len(_table_list) > 0: continue className = str_utils.under_score_case_to_camel_case( format_table_pre(tableName['TABLE_NAME'])) + 'Po' tableNamess['TN' + str_utils.under_score_case_to_camel_case( format_table_pre( tableName['TABLE_NAME']))] = tableName['TABLE_NAME'] classInfo = u'''package po import "time" type %s struct { %s''' % (className, linesep) tableColumns = get_db_table_column_list(_db_name, tableName['TABLE_NAME']) if None == tableColumns: continue for column in tableColumns: t = 'UnKnow' c = '{}'.format(str(column['DATA_TYPE']).lower()) columnName = str_utils.under_score_case_to_camel_case( column['COLUMN_NAME']) if columnNames.get(columnName, None) == None: columnNames['CN' + columnName] = column['COLUMN_NAME'] comment = '{}'.format(str(column['COLUMN_COMMENT'])) columnType = '{}'.format(str(column['COLUMN_TYPE'])) size = column['CHARACTER_MAXIMUM_LENGTH'] key = column['COLUMN_KEY'] sizeScale = 0 default = column['COLUMN_DEFAULT'] isNull = column['IS_NULLABLE'] extra = '' if c in [ 'varchar', 'text', 'char', 'longtext', 'enum', 'mediumtext', 'tinytext' ]: t = 'string' elif c in ['int', 'tinyint', 'smallint', 'mediumint', 'bit']: t = 'int' size = column['NUMERIC_PRECISION'] elif c in ['bigint']: t = 'int64' size = column['NUMERIC_PRECISION'] elif c in ['float', 'double', 'boolean', 'decimal', 'peal']: t = 'float' size = column['NUMERIC_PRECISION'] sizeScale = column['NUMERIC_SCALE'] elif c in ['date', 'datetime', 'timestamp', 'time', 'year']: t = 'time.Time' extra = column['EXTRA'] classInfo = '''%s %s// %s %s %s%s %s %s %s `gorm:"type:%s;column:%s" json:"%s"` ''' % (classInfo, tab, columnName, comment, tab, columnName, tab, format_go_db_type_is_null(isNull, key, t), tab, columnType, column['COLUMN_NAME'], columnName[:1].lower() + columnName[1:]) classInfo = '%s}' % (classInfo) classInfo = '''%s func (%s) TableName() string { return "%s" } ''' % (classInfo, className, tableName['TABLE_NAME']) file_utils.write_file( _file_path + format_table_pre(tableName['TABLE_NAME']) + '_po.go', classInfo + os.linesep, 'w') # 写列名常量 columnContent = '''package po ''' for k, v in columnNames.items(): columnContent = '%s%sconst %s = "%s"' % (columnContent, linesep, k, v) file_utils.write_file(_file_path + 'column_name.go', columnContent + os.linesep, 'w') tableContent = '''package po ''' for k, v in tableNamess.items(): tableContent = '%s%sconst %s = "%s"' % (tableContent, linesep, k, v) file_utils.write_file(_file_path + 'table_name.go', tableContent + os.linesep, 'w')