Can you check if this works now with trunk? On Thursday, 30 August 2012 18:05:34 UTC-5, Jim S wrote: > > Wow, I'm really losing it. I'm referring to line number 726 instead of > 727 in C:\dev\web2py\gluon\dal.py in create_table. > > Sorry for the sloppy reporting. > > -Jim > > > On Thu, Aug 30, 2012 at 5:25 PM, Massimo Di Pierro > <[email protected]<javascript:> > > wrote: > >> In which file? A web2py file? >> >> On Thursday, 30 August 2012 16:51:52 UTC-5, Jim S wrote: >>> >>> Sorry, I had a debug line in db.py. The actual offending line there is >>> 726. >>> >>> -Jim >>> >>> On Thursday, August 30, 2012 4:44:40 PM UTC-5, Jim S wrote: >>>> >>>> Hi – sorry if this gets there multiple times, but I’ve posted twice in >>>> the past 6 hours and it hasn’t shown up yet: >>>> >>>> >>>> >>>> I’m getting the following: >>>> >>>> >>>> >>>> Traceback (most recent call last): >>>> >>>> File "C:\dev\web2py\gluon\**restricted.py", line 209, in restricted >>>> >>>> exec ccode in environment >>>> >>>> File "C:/dev/web2py/applications/**infocenter/models/db.py", line >>>> 88, in <module> >>>> >>>> auth.define_tables() ** # creates all >>>> needed tables >>>> >>>> File "C:\dev\web2py\gluon\tools.py"**, line 1501, in define_tables >>>> >>>> fake_migrate=fake_migrate)) >>>> >>>> File "C:\dev\web2py\gluon\dal.py", line 7051, in define_table >>>> >>>> table = self.lazy_define_table(**tablename,*fields,**args) >>>> >>>> File "C:\dev\web2py\gluon\dal.py", line 7082, in lazy_define_table >>>> >>>> polymodel=polymodel) >>>> >>>> File "C:\dev\web2py\gluon\dal.py", line 727, in create_table >>>> >>>> on_delete_action=field.**ondelete) >>>> >>>> KeyError: 'index_name`' >>>> >>>> >>>> >>>> Offending line of my code is: >>>> >>>> auth.define_tables() >>>> >>>> >>>> >>>> Code up to that point: >>>> >>>> >>>> >>>> from gluon.custom_import import track_changes >>>> >>>> track_changes() >>>> >>>> >>>> >>>> import icUtil >>>> >>>> import infoCenterUtil >>>> >>>> import logging >>>> >>>> from dateutil.relativedelta import * >>>> >>>> from dateutil.parser import * >>>> >>>> import datetime >>>> >>>> import os >>>> >>>> from plugin_suggest_widget import suggest_widget >>>> >>>> >>>> >>>> log = logging.getLogger('InfoCenter'**) >>>> >>>> if len(log.handlers) == 0: >>>> >>>> log = icUtil.getLog(loggerName='**InfoCenter', level='INFO', >>>> echo=True) >>>> >>>> >>>> >>>> if infoCenterUtil.migrate(): >>>> >>>> db = DAL(infoCenterUtil.**getDalString(), bigint_id=True) >>>> >>>> else: >>>> >>>> db = DAL(infoCenterUtil.**getDalString(), migrate=False, >>>> >>>> migrate_enabled=**False, bigint_id=True) >>>> >>>> >>>> >>>> # by default give a view/generic.extension to all actions from localhost >>>> >>>> # none otherwise. a pattern can be 'controller/function.**extension' >>>> >>>> response.generic_patterns = ['*'] if request.is_local else [] >>>> >>>> >>>> >>>> #print request.env.path_info >>>> >>>> >>>> >>>> ##############################**##############################** >>>> ############# >>>> >>>> ## Here is sample code if you need for >>>> >>>> ## - email capabilities >>>> >>>> ## - authentication (registration, login, logout, ... ) >>>> >>>> ## - authorization (role based authorization) >>>> >>>> ## - services (xml, csv, json, xmlrpc, jsonrpc, amf, rss) >>>> >>>> ## - crud actions >>>> >>>> ## (more options discussed in gluon/tools.py) >>>> >>>> ##############################**##############################** >>>> ############# >>>> >>>> >>>> >>>> from gluon.tools import Mail, Auth, Crud, Service, PluginManager, >>>> prettydate >>>> >>>> >>>> >>>> mail = Mail() ** # mailer >>>> >>>> auth = Auth(db) ** # >>>> authentication/authorization >>>> >>>> crud = Crud(db) ** # for CRUD helpers >>>> using auth >>>> >>>> service = Service() ** # for json, xml, >>>> jsonrpc, xmlrpc, amfrpc >>>> >>>> plugins = PluginManager() >>>> >>>> >>>> >>>> from gluon.contrib.login_methods.**email_auth import email_auth >>>> >>>> #auth.settings.login_methods.**append((email_auth('smtp.** >>>> asdfasdf.com:587 <http://smtp.asdfasdf.com:587>', '@asdfasd.com'))) >>>> >>>> auth.settings.login_methods.**append((email_auth('mail.**asdfasdf.com<http://mail.asdfasdf.com>', >>>> >>>> '@sadfs.com'))) >>>> >>>> >>>> >>>> mail.settings.server = 'mail.asdfjl.com' # your SMTP server >>>> >>>> mail.settings.sender = '[email protected]' # your email >>>> >>>> mail.settings.login = 'asdf:alkdsjl' # your credentials or None >>>> >>>> >>>> >>>> auth.settings.hmac_key = 'sha512:9d8d83af-6548-410b-**9cf5-e01a163b498d' >>>> # before define_tables() >>>> >>>> >>>> >>>> auth_user = db.define_table( >>>> >>>> auth.settings.table_user_name, >>>> >>>> Field('first_name', length=128, default='', required=True), >>>> >>>> Field('last_name', length=128, default='', required=True), >>>> >>>> Field('email', length=128, unique=True, required=True), >>>> >>>> Field('password', 'password', length=512, >>>> >>>> readable=True, writable=True, label='Password'), >>>> >>>> Field('registration_key', length=512, >>>> >>>> writable=False, readable=False, default=''), >>>> >>>> Field('reset_password_key', length=512, >>>> >>>> writable=False, readable=False, default=''), >>>> >>>> Field('registration_id', length=512, >>>> >>>> writable=False, readable=False, default=''), >>>> >>>> Field('brillLogon', length=10, default='', label='Brill Logon'), >>>> >>>> Field('technician', 'boolean', default=False), >>>> >>>> Field('dispatcher', 'boolean', default=False), >>>> >>>> Field('lastFirst', compute=lambda u: '%s, %s' % (u['last_name'], >>>> u['first_name']), label='Name'), >>>> >>>> Field('firstLast', compute=lambda u: '%s %s' % (u['first_name'], >>>> u['last_name']), label='Name'), >>>> >>>> format='%(last_name)s, %(first_name)s') >>>> >>>> >>>> >>>> auth_user.first_name.requires = IS_NOT_EMPTY(error_message=** >>>> auth.messages.is_empty) >>>> >>>> auth_user.last_name.requires = IS_NOT_EMPTY(error_message=** >>>> auth.messages.is_empty) >>>> >>>> auth_user.password.requires = [CRYPT()] >>>> >>>> auth_user.email.requires = [IS_EMAIL(error_message=auth.** >>>> messages.invalid_email), >>>> >>>> IS_NOT_IN_DB(db, auth_user.email), >>>> >>>> IS_NOT_EMPTY(error_**message=auth.messages.is_**empty)] >>>> >>>> auth_user.id.readable = False >>>> >>>> auth_user._plural = 'Users' >>>> >>>> >>>> >>>> auth.settings.table_user = auth_user >>>> >>>> >>>> >>>> auth.define_tables() >>>> >>>> >>>> >>>> >>>> >>>> Anyone with any idea why this is happening? Seems to be when it is >>>> processing the auth_membership table. Happens on existing or new (empty, >>>> no tables) database. Will create auth_user and auth_group on clean db >>>> before it fails. >>>> >>>> >>>> >>>> -Jim >>>> >>>> >>>> >>> -- >> >> >> >> > >
--

