|
@@ -3,7 +3,7 @@ import hashlib
|
|
|
import re
|
|
|
import time
|
|
|
|
|
|
-field_types = dict(
|
|
|
+dal_field_type = dict(
|
|
|
id='id',
|
|
|
bit='boolean',
|
|
|
tinyint='boolean',
|
|
@@ -20,12 +20,12 @@ session.sql_servers = sql_servers
|
|
|
session.sql_fields = []
|
|
|
|
|
|
for c in sql_servers:
|
|
|
- host = c['host']
|
|
|
- server = c['server']
|
|
|
- database = c['database']
|
|
|
- tables = c['tables']
|
|
|
- fields = c['fields']
|
|
|
- filters = c['filters']
|
|
|
+ host = c['host']
|
|
|
+ server = c['server']
|
|
|
+ database = c['database']
|
|
|
+ tables = c['tables']
|
|
|
+ ignore_fields = c['field_ignore']
|
|
|
+ field_type_fix = c['field_type_fix']
|
|
|
|
|
|
#_db = 'sql_' + hashlib.md5(server).hexdigest()
|
|
|
_db = 'sql_' + server
|
|
@@ -41,25 +41,27 @@ for c in sql_servers:
|
|
|
dal_fields = []
|
|
|
for fld_name, fld_type, _, fld_key, _, _ in cols:
|
|
|
field_long_name = '%s.%s' % (tab, fld_name)
|
|
|
- if field_long_name in filters:
|
|
|
+ if field_long_name in ignore_fields:
|
|
|
continue
|
|
|
- # extract filed type (typ) and filed length (length)
|
|
|
- m = re.match('(.*)\((.*)\)', fld_type)
|
|
|
- if m:
|
|
|
- fld_type = m.group(1)
|
|
|
- length = int(m.group(2))
|
|
|
+ if field_long_name in field_type_fix.keys():
|
|
|
+ fld_type = field_type_fix[field_long_name]
|
|
|
else:
|
|
|
- length = None
|
|
|
- # if fld_key is 'PRI', then fld_type is 'id'
|
|
|
+ m = re.match('(.*)\((.*)\)', fld_type)
|
|
|
+ if m:
|
|
|
+ fld_type = m.group(1)
|
|
|
+ fld_length = int(m.group(2))
|
|
|
+ else:
|
|
|
+ length = None
|
|
|
if fld_key == 'PRI':
|
|
|
fld_type = 'id'
|
|
|
- if field_long_name in fields.keys():
|
|
|
- fld_type = fields[field_long_name]
|
|
|
- field_names.append(dict(name=fld_name, type=fld_type))
|
|
|
if fld_type == 'mediumblob':
|
|
|
- pass
|
|
|
+ field_names.append(dict(name=fld_name, type=fld_type))
|
|
|
+ continue
|
|
|
else:
|
|
|
- dal_fields.append(Field(fld_name, type=field_types[fld_type], length=length))
|
|
|
+ field_names.append(dict(name=fld_name, type=fld_type))
|
|
|
+ dal_fields.append(Field(fld_name, \
|
|
|
+ type=dal_field_type[fld_type], \
|
|
|
+ length=fld_length))
|
|
|
|
|
|
globals()[_db].define_table(tab, *dal_fields)
|
|
|
session.sql_fields.append(dict(server=server, table=tab, fields=field_names))
|