Thanks Massimo, that did the trick.  I'm now on to my next error but will 
start a new thread.

-Jim

On Thursday, August 30, 2012 8:19:08 PM UTC-5, Massimo Di Pierro wrote:
>
> 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 <massimo....@gmail.com
>> > 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', 
>>>>> '@asdfasd.com')))
>>>>>
>>>>> auth.settings.login_methods.append((email_auth('mail.asdfasdf.com', '@
>>>>> sadfs.com')))
>>>>>
>>>>>  
>>>>>
>>>>> mail.settings.server = 'mail.asdfjl.com'  # your SMTP server
>>>>>
>>>>> mail.settings.sender = 'i...@sadfas.com'         # 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
>>>>>
>>>>>  
>>>>>
>>>> -- 
>>>  
>>>  
>>>  
>>>
>>
>>

-- 



Reply via email to