The main problem is that the failure is silent. It makes no sense that a developer declares a field to be length 1000, and DAL arbitrarily reduces that to 255 instead of providing an error message. I understand why 255 may be a safe default limit for MySQL; but if so then fail the field creation with a relevant error message (and maybe reference Jonathan's solution re: how to override maxcharlength if the developer knows the DBMS version can handle the larger limit).
In the current 2.5.1 code, looking in dal.py: class MySQLAdapter(BaseAdapter): .... maxcharlength = 255 ... class Table(object): ... def __init__( self, db, tablename, *fields, **args ): ... for field in fields: ... if db and not field.type in ('text', 'blob', 'json') and \ db._adapter.maxcharlength < field.length: field.length = db._adapter.maxcharlength ### problem line I'd recommend the last line above, marked ### problem line, be replaced with something like, raise ValueError('Requested field length exceeds adapter maxcharlength, cannot create. See http://whatever for a way to override this limit.') ?? -- --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.