Il giorno 05 ott 2016, alle ore 08:57, Giovanni Porcari
<giovanni.porcari@xxxxxxxxx> ha scritto:
Il giorno 05 ott 2016, alle ore 07:12, Gollum1 <gollum1.smeagol1@xxxxxxxxx>
ha scritto:
mentre sul terminale mi appare il seguente messaggio:
unrecognized column type: mediumint
ho provato a fare la stessa cosa su tutte le tabelle, ed ho segnato
per l'importazione solo quelle che non mi hanno dato questo errore...
ed in effetti con queste l'importazione è riuscita…
Purtroppo i tipi nei vari DB sono molto fantasiosi.
Se vai nell'adapter di mysql (gnr/gnrpy/sql/adapters/gnrmysql.py) troverai :
class SqlDbAdapter(SqlDbBaseAdapter):
typesDict = {'varchar': 'A', 'char': 'C', 'text': 'T', 'tinytext': 'T',
'mediumtext': 'T', 'longtext': 'T',
'enum': 'A',
'boolean': 'B', 'date': 'D', 'time': 'H', 'datetime': 'DH',
'tinyint': 'I', 'timestamp': 'DH',
'integer': 'I', 'bigint': 'L', 'smallint': 'I', 'int': 'I',
'double precision': 'R', 'real': 'R',
'bytea': 'O', 'decimal':'N', 'longblob':'O', 'float':'R',
'blob':'O', 'varbinary':'O'}
revTypesDict = {'A': 'varchar', 'T': 'text', 'C': 'char',
'X': 'text', 'P': 'text', 'Z': 'text',
'B': 'boolean', 'D': 'date', 'H': 'time', 'DH': 'datetime',
'I': 'int', 'L': 'bigint', 'R': 'real','N':'decimal',
'serial': 'serial8', 'O': 'bytea'}
In pratica questi dizionari governano come vengono mappati i tipi.
Noi non gestiamo i mediumint e quindi si pianta.
Se vuoi aggiustarlo tu basta che modifichi typesDict aggiungendo :
'mediumint':'L'
typesDict = {'varchar': 'A', 'char': 'C', 'text': 'T', 'tinytext': 'T',
'mediumtext': 'T', 'longtext': 'T',
'enum': 'A',
'boolean': 'B', 'date': 'D', 'time': 'H', 'datetime': 'DH',
'tinyint': 'I', 'timestamp': 'DH',
'integer': 'I', 'bigint': 'L', 'smallint':
'I','mediumint':'L', 'int': 'I', 'double precision': 'R', 'real': 'R',
'bytea': 'O', 'decimal':'N', 'longblob':'O', 'float':'R',
'blob':'O', 'varbinary':'O'}
Poi lo faremo noi ma se intanto vuoi provare…