let say i have a code:
*models/db_wizard_1_bank.py*
db.define_table('bank',
Field('name'),
Field('website'),
format = '%(name)s')
*controllers/install.py*
def index():
if db(db.auth_permission).isempty() and db(db.auth_membership).isempty():
# create index : auth_user
db.executesql('CREATE INDEX idx_auth_user ON auth_user (id, first_name,
last_name, email, username);')
# insert : bank
db.bank.bulk_insert([
{'name1' : 'bank0', 'website' : 'http://www.bank0.com'},
{'name' : 'bank1', 'website' : 'http://www.bank1.com'}, ] )
session.flash = T('Installation Done')
redirect(URL('default', 'index') )
as you can see, i made a mistake during insert to table bank field name1
(incorrect), should be field name in table bank, but the traceback error
said is different.
what i got in traceback error :
Traceback (most recent call last):
File "/Users/MacBookPro/site/web2py/gluon/restricted.py", line 227, in
restricted
exec ccode in environment
File "/Users/MacBookPro/site/web2py/applications/test/controllers/install.py"
<http://127.0.0.1:8000/admin/default/edit/mutualfunds/controllers/install.py>,
line 412, in <module>
File "/Users/MacBookPro/site/web2py/gluon/globals.py", line 417, in <lambda>
self._caller = lambda f: f()
File "/Users/MacBookPro/site/web2py/applications/test/controllers/install.py"
<http://127.0.0.1:8000/admin/default/edit/mutualfunds/controllers/install.py>,
line 9, in index
db.executesql('CREATE INDEX idx_auth_user ON auth_user (id, first_name,
last_name, email, username);')
File "/Users/MacBookPro/site/web2py/gluon/packages/dal/pydal/base.py", line
1019, in executesql
adapter.execute(query)
File
"/Users/MacBookPro/site/web2py/gluon/packages/dal/pydal/adapters/base.py", line
1388, in execute
return self.log_execute(*a, **b)
File
"/Users/MacBookPro/site/web2py/gluon/packages/dal/pydal/adapters/base.py", line
1382, in log_execute
ret = self.get_cursor().execute(command, *a[1:], **b)
OperationalError: index idx_auth_user already exists
Error snapshot [image: help]
<http://127.0.0.1:8000/admin/default/ticket/mutualfunds/127.0.0.1.2016-07-09.07-29-57.44b25bca-2458-4de3-b035-ea50bb8f2522#>
<class 'sqlite3.OperationalError'>(index idx_auth_user already exists)
again, same code with different structure order (insert first then create
index) in install.py
*controllers/install.py*
def index():
if db(db.auth_permission).isempty() and db(db.auth_membership).isempty():
# insert : bank
db.bank.bulk_insert([
{'name1' : 'bank0', 'website' : 'http://www.bank0.com'},
{'name' : 'bank1', 'website' : 'http://www.bank1.com'}, ] )
# create index : auth_user
db.executesql('CREATE INDEX idx_auth_user ON auth_user (id, first_name,
last_name, email, username);')
session.flash = T('Installation Done')
redirect(URL('default', 'index') )
as you can see, i made a mistake during insert to table bank field name1
(incorrect), should be field name in table bank, but the traceback error
said is straight to the point to show where is my mistake.
what i got in traceback error :
Traceback (most recent call last):
File "/Users/MacBookPro/site/web2py/gluon/restricted.py", line 227, in
restricted
exec ccode in environment
File "/Users/MacBookPro/site/web2py/applications/test/controllers/install.py"
<http://127.0.0.1:8000/admin/default/edit/mutualfunds/controllers/install.py>,
line 412, in <module>
File "/Users/MacBookPro/site/web2py/gluon/globals.py", line 417, in <lambda>
self._caller = lambda f: f()
File "/Users/MacBookPro/site/web2py/applications/test/controllers/install.py"
<http://127.0.0.1:8000/admin/default/edit/mutualfunds/controllers/install.py>,
line 55, in index
{'name' : 'bank1', 'website' : 'http://www.bank1.com'}, ] )
File "/Users/MacBookPro/site/web2py/gluon/packages/dal/pydal/objects.py",
line 828, in bulk_insert
listify_items = [self._listify(item) for item in items]
File "/Users/MacBookPro/site/web2py/gluon/packages/dal/pydal/objects.py",
line 641, in _listify
'Field %s does not belong to the table' % name)
SyntaxError: Field name1 does not belong to the table
Error snapshot [image: help]
<http://127.0.0.1:8000/admin/default/ticket/mutualfunds/127.0.0.1.2016-07-09.07-33-51.9c11b273-0758-4a3f-b258-e4df76325fda#>
<type 'exceptions.SyntaxError'>(Field name1 does not belong to the table)
the solution is either i comment the create index part or change the order
to get the clear traceback error, my question is it normal?
thanks and best regards,
stifan
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
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 [email protected].
For more options, visit https://groups.google.com/d/optout.