Thanks for the note! I've tried passing to the driver_args a Charset object (defined by the pymysql lib like so): from gluon.contrib.pymysql import charset passing into DAL
DAL(....,driver_args={'charset':charset.charset_by_id(83)) in the charset module this is the Charset object I'm referring to: _charsets.add(Charset(83, 'utf8', 'utf8_bin', '')) but passing in that charset doesn't appear to be anything, as the table is still created as the default utf8 collation, utf8_general_ci. In fact, I don't see any reference in the pymysql code (or even web2py for that matter) that involves actually setting the collation, which leaves me baffled as to why the charset module exists in the first place. The db_codec doesn't appear to help either, because it doesn't seem to recognize utf8_bin. I might be delving a little too deep here for something that web2py simply can't do... Thanks!