Please, we want you to help us confirm

We have reviewed and xxxxbenefs2.table SQL.LOG and we observe that the
field sexoWorked is defined according to the model.

However, when reviewing the MySQL database we see that the field is
defined as sexoworked. As you say

In this case it would be best to migrate all the code, model,
controllers and views?

We would have to change and xxxbenefs2.table SQL.LOG manually?

Or is there another alternative?
On Mar 31, 12:17 pm, Massimo Di Pierro <massimo.dipie...@gmail.com>
wrote:
> The problem is this:
>
> You defined Field('sexoWorked')
>
> but you are using "sexoworked" in your code. Some versions of web2py
> were forgiving about that but it resulted in a problem because SQL is
> not always case agnostic. You need to make sure you use the same case
> in the table definitions and in the code.
>
> Attention: if you change the case in models that may trigger a
> migration and data loss unless you convert the .table files. I will be
> happy to do that for you if needed.
>
> Massimo
>
> On Mar 31, 1:03 pm, drayco <antrod...@gmail.com> wrote:
>
>
>
>
>
>
>
> > Good morning to all, our case is as follows, in the production site
> > have web2py 1.89.5 and MySQL, all our applications are operating
> > properly.
>
> > Now we would like to upgrade to version 1.94.6, however we have
> > compatibility issues with the new version of the dal, these are the
> > details.
>
> > db.define_table('benefs2',
> >     Field('names', 'string',
> > requires=[IS_UPPER(),IS_NOT_EMPTY(error_message='No puede estar
> > vacio')], label='Benef. Nombre(s)'),
> >     Field('apelPater', 'string',
> > requires=[IS_UPPER(),IS_NOT_EMPTY(error_message='No puede estar
> > vacio')], label='Benef. Apel. Pater.'),
> >     Field('apelMater', 'string',
> > requires=[IS_UPPER(),IS_NOT_EMPTY(error_message='No puede estar
> > vacio')], label='Benef. Apel. Mater.'),
> >     Field('rfc', 'string', requires=[IS_UPPER(),
> > IS_NOT_EMPTY(error_message='No puede estar vacio'),\
> >         IS_LENGTH(13,error_message='El tamaño debe ser de 13
> > caracteres alfanumericos'),IS_ALPHANUMERIC(error_message='¡Deben ser
> > caracteres alfanumericos!'), \
> >         IS_NOT_IN_DB(db,'benefs2.rfc',error_message='El RFC ya
> > existe')], label='Benef. RFC'),
>
> > Field('sexo','string',requires=IS_IN_SET(['femenino','masculino']),
> > label='Benef. Sexo'),
>
> > Field('enfermedades',db.enfermedades,requires=IS_IN_DB(db,'enfermedades.id' 
> > ,'%
> > (names)s'), label='Benef. Enfermedad',readable=False),
> >     Field('namesWorked', 'string',
> > requires=[IS_UPPER(),IS_NOT_EMPTY(error_message='No puede estar
> > vacio')], label='Trabajador Nombre(s)'),
> >     Field('apelPaterWorked', 'string',
> > requires=[IS_UPPER(),IS_NOT_EMPTY(error_message='No puede estar
> > vacio')], label='Trabajador Apel.Pater.'),
> >     Field('apelMaterWorked', 'string',
> > requires=[IS_UPPER(),IS_NOT_EMPTY(error_message='No puede estar
> > vacio')], label='Trabajador Apel.Mater.'),
> >     Field('rfcWorked', 'string', requires=[IS_UPPER(),
> > IS_NOT_EMPTY(error_message='No puede estar vacio'),\
> >         IS_LENGTH(13,error_message='El tamaño debe ser de 13
> > caracteres alfanumericos'),IS_ALPHANUMERIC(error_message='¡Deben ser
> > caracteres alfanumericos!'), \
> >         IS_NOT_IN_DB(db,'benefs2.rfcWorked',error_message='El RFC ya
> > existe')], label='Trabajador RFC'),
> > IS_FLOAT_IN_RANGE(0,1e1000,error_message='Debe ser Numero positivo')],
> > label='Trabajador Tel.Trabajo'),
>
> > Field('sexoWorked','string',requires=IS_IN_SET(['femenino','masculino']),
> > label='Trabajador Sexo'),
> >     Field('subdireccion','string',requires=IS_IN_SET(['Nezahualcóyotl
> > y Chalco','Ecatepec y Tecámac','Cuautitlán Izcalli y
> > Naucalpan']),label='Trabajador SubDir.'))
>
> > Could you help?, thanks in advance for your excellent work.
>
> > Traceback (most recent call last):
> >   File "/home/drayco/web2py/gluon/restricted.py", line 189, in
> > restricted
> >     exec ccode in environment
> >   File "/home/drayco/web2py/applications/init/models/db.py", line 334,
> > in <module>
> >     Field('subdireccion','string',requires=IS_IN_SET(['Nezahualcóyotl
> > y Chalco','Ecatepec y Tecámac','Cuautitlán Izcalli y
> > Naucalpan']),label='Trabajador SubDir.'))
> >   File "/home/drayco/web2py/gluon/dal.py", line 3973, in define_table
> >     polymodel=polymodel)
> >   File "/home/drayco/web2py/gluon/dal.py", line 611, in create_table
> >     fake_migrate=fake_migrate)
> >   File "/home/drayco/web2py/gluon/dal.py", line 655, in migrate_table
> >     and not isinstance(table[key].type, SQLCustomType) \
> >   File "/home/drayco/web2py/gluon/dal.py", line 4323, in __getitem__
> >     return dict.__getitem__(self, str(key))
> > KeyError: 'sexoworked'
>
> > Code listing
>
> > 4318.
> > 4319.
> > 4320.
> > 4321.
> > 4322.
> > 4323.
>
> > 4324.
> > 4325.
> > 4326.
> > 4327.
> >                 return rows[0]
> >             return None
> >         elif str(key).isdigit():
> >             return self._db(self.id ==
> > key).select(limitby=(0,1)).first()
> >         elif key:
> > return dict.__getitem__(self, str(key))
>
> >     def __call__(self, key=DEFAULT, **kwargs):
> >         if key!=DEFAULT:
> >             if isinstance(key, Query):

Reply via email to