I can also confirm this is a bug with the new DAL.

It is only caused when using upper case characters in the table or field
names. It seems that web2py converts all of the tablenames to lower case
when issuing the SQL (so your actual tables are lower regardless of what you
specify in the python). There is something in the migrations that cause this
to come up, because it will work just fine one run and crash on another run
after changing some unrelated tables.

I don't think the DAL should force the tables to lowercase.

--
Thadeus




On Sat, Jan 8, 2011 at 12:38 AM, mart <msenecal...@gmail.com> wrote:

> no, this is python...
>
> not sure how it could have worked before, but the key (technogradua)
> in .keys() is not being picked up... dal is simply pointing that out
> with the exception being thrown. I did notice when I made the switch
> that a few more of my mistakes got picked up (or it could be that I
> forgot that I changed something), but regardless... since switching to
> the latest DAL release and fixing my mistakes that it quickly picked
> up, I have had no problems (except those that I cause). I would simply
> take those exceptions for cash, change the case and enjoy one less
> exception ;)
>
> Mart :)
>
>
>
> On Jan 8, 1:19 am, drayco <antrod...@gmail.com> wrote:
> > Ok, I understand your point.
> >
> > But this is a issue of DAL or what?
> >
> > because I only update web2py to trunk version
> >
> > On Jan 8, 12:15 am, mart <msenecal...@gmail.com> wrote:
> >
> >
> >
> >
> >
> >
> >
> > > Probably just being unhappy with the case :)
> >
> > > tecnoGradua != tecnogradua
> >
> > > Mart :)
> >
> > > Field("tecnoGradua", 'string',
> >
> > > On Jan 8, 12:57 am, drayco <antrod...@gmail.com> wrote:
> >
> > > > Hi, this code works with web2py 1.89.5 with mysql
> >
> > > > but with web2py in trunk and mysql it dosent works.
> >
> > > > db.define_table("lentes",
> > > >     audit,
> > > >     Field("tecnoGradua", 'string',
> > > > requires=IS_IN_SET(['MONOFOCAL','BIFOCAL','MULTIFOCAL']),label="Num.
> > > > de Graduaciones"),
> > > >     Field("material", "string", requires=IS_IN_SET(['MICA
> CR-39','ORMA
> > > > 1.50','HIGH INDEX','THIN & LITE 1.67
> > > > ASFÉRICA','POLICARBONATO','CRISTAL'])),
> > > >     Field("tipo", "string",requires=IS_NULL_OR(IS_IN_SET(['FLAT
> > > > TOP','BLEND O YOUNGER','PROGRESIVOS','PROGRESIVOS VARILUX COMFORT
> > > > NE','PROGRESIVOS COMPACTOS','PROGRESIVOS VARILUX COMFORT SHORT']))),
> > > >     Field("tecnoVisual",
> > > >
> 'string',requires=IS_NULL_OR(IS_IN_SET(['PHOTOGRAY','TRANSITIONS'])),label=
> "Tecnologia
> > > > de Visualización"),
> > > >     Field("tratamiento", "string",requires=IS_NULL_OR(IS_IN_SET(['CON
> > > > ANTIRREFLEJANTE','ESPEJEADO','CRIZAL FORTE','CRIZAL ALIZÉ']))),
> > > >     Field('limitup','double', writable=False, readable=False),
> > > >     Field('limitdown','double', writable=False, readable=False),
> > > >     Field("promo", "double", requires=[IS_NOT_EMPTY(error_message='No
> > > > puede estar vacio'),IS_FLOAT_IN_RANGE(0,10000,error_message='Debe ser
> > > > un numero positivo entre 0 y 10000')], label='Precio de Promoción'),
> > > >     Field("precio", "double", writable=False, readable=False),
> > > >     Field("costo", "double", writable=False, readable=False),
> > > >     Field("observaciones","text", writable=False, readable=False))
> >
> > > > This is the traceback
> >
> > > > Traceback (most recent call last):
> > > >   File "/home/drayco/web2py/gluon/restricted.py", line 188, in
> > > > restricted
> > > >     exec ccode in environment
> > > >   File "/home/drayco/web2py/applications/movil/models/db.py", line
> > > > 272, in <module>
> > > >     Field("observaciones","text", writable=False, readable=False))
> > > >   File "/home/drayco/web2py/gluon/dal.py", line 3441, in define_table
> > > >     polymodel=polymodel)
> > > >   File "/home/drayco/web2py/gluon/dal.py", line 551, in create_table
> > > >     fake_migrate=fake_migrate)
> > > >   File "/home/drayco/web2py/gluon/dal.py", line 595, in migrate_table
> > > >     and not isinstance(table[key].type, SQLCustomType) \
> > > >   File "/home/drayco/web2py/gluon/dal.py", line 3778, in __getitem__
> > > >     return dict.__getitem__(self, str(key))
> > > > KeyError: 'tecnogradua'
> >
> > > > Can I need to change something?
>

Reply via email to