The problem still exists in the latest nightly build. Without this modification (changing the field length to 128) launching web2py on the remote GAE server gives me the error:
DatabaseError: 1071: Specified key was too long; max key length is 767 bytes The whole traceback is as follows: Traceback (most recent call last): File "/base/data/home/apps/s~vocabilis-net/1.360870371412546434/gluon/restricted.py", line 205, in restricted exec ccode in environment File "/base/data/home/apps/s~vocabilis-net/1.360870371412546434/applications/vocabilis/models/db.py", line 22, in <module> session.connect(request, response, db = db) File "/base/data/home/apps/s~vocabilis-net/1.360870371412546434/gluon/globals.py", line 523, in connect migrate=table_migrate, File "/base/data/home/apps/s~vocabilis-net/1.360870371412546434/gluon/dal.py", line 6943, in define_table polymodel=polymodel) File "/base/data/home/apps/s~vocabilis-net/1.360870371412546434/gluon/dal.py", line 810, in create_table logfile = self.file_open(table._loggername, 'a') File "/base/data/home/apps/s~vocabilis-net/1.360870371412546434/gluon/dal.py", line 3816, in file_open return DatabaseStoredFile(self.db,filename,mode) File "/base/data/home/apps/s~vocabilis-net/1.360870371412546434/gluon/dal.py", line 3757, in __init__ self.db.executesql("CREATE TABLE IF NOT EXISTS web2py_filesystem (path VARCHAR(512), content LONGTEXT, PRIMARY KEY(path) ) ENGINE=InnoDB;") File "/base/data/home/apps/s~vocabilis-net/1.360870371412546434/gluon/dal.py", line 7022, in executesql self._adapter.execute(query) File "/base/data/home/apps/s~vocabilis-net/1.360870371412546434/gluon/dal.py", line 3865, in execute return self.log_execute(a.decode('utf8')) File "/base/data/home/apps/s~vocabilis-net/1.360870371412546434/gluon/dal.py", line 1546, in log_execute ret = self.cursor.execute(*a, **b) File "/base/python27_runtime/python27_lib/versions/1/google/storage/speckle/python/api/rdbms.py", line 424, in execute self._DoExec(request) File "/base/python27_runtime/python27_lib/versions/1/google/storage/speckle/python/api/rdbms.py", line 355, in _DoExec response = self._conn.MakeRequest('Exec', request) File "/base/python27_runtime/python27_lib/versions/1/google/storage/speckle/python/api/rdbms.py", line 711, in MakeRequest response = self._MakeRetriableRequest(stub_method, request) File "/base/python27_runtime/python27_lib/versions/1/google/storage/speckle/python/api/rdbms.py", line 742, in _MakeRetriableRequest sql_exception.message)) DatabaseError: 1071: Specified key was too long; max key length is 767 bytes On Saturday, January 7, 2012 7:43:22 AM UTC+7, howesc wrote: > > i don't know if i'm gonna regret this later, but in dal.py i changed that > field length to 128: > > self.db.executesql("CREATE TABLE IF NOT EXISTS > web2py_filesystem (path VARCHAR(128), content LONGTEXT, PRIMARY KEY(path) ) > ENGINE=InnoDB;") > > now it works again. > --