Si el problema es con sequence_name entonces no tengo idea, jamas lo
he usado.

If the problem is with sequence_name then I don't know, I have never
used it.


On Jan 31, 10:47 pm, DenesL <[email protected]> wrote:
> Hola Drayco,
>
> aun no entiendo como funciona la aplicacion, el codigo que soporta
> bases de datos pre-existentes para mysql simplemente no existe en el
> archivo sql.py en la version 1.83.2, ni en dal.py en trunk.
>
> Deben existir las definiciones para mysql de 'reference FK' (llave
> foranea) y 'reference TFK' (llave tabla foranea) como se observa por
> ejemplo en las definiciones para MS-SQL, among other things.
>
> In English:
> -----------
> I still don't understand how the app can work, the code that supports
> legacy DBs for mysql is simply not there in the sql.py file on version
> 1.83.2, and neither in trunk's dal.py.
>
> 'reference FK' (foreign key) and 'reference TFK' (table foreign key)
> must be defined for mysql, similar to those defined for MS-SQL for
> example, among other things.
>
> Denes.
>
> On Jan 31, 9:13 pm, drayco <[email protected]> wrote:
>
> > Hi DenesL, This old application works now with with web2py 1.83.2 and
> > mysql in RedHat 5.5 with 64 bits
>
> > However, with web2py in trunk and mysql it doesn't works
>
> > De hecho en esta liga, te agradecí que sin querer me solucionaste un
> > problema :D
>
> >http://groups.google.com/group/web2py/browse_thread/thread/789387057d...
>
> > Es una aplicación que tiene 2 bases de datos legadas y una tercera en
> > la cual se tienen los datos con los cuales se pueden generar ligas
> > entre las 2 bases legadas y dar los servicios web que informan a otras
> > aplicaciones el contenido de las 2 legadas. Suena raro pero eso
> > necesitan en la escuela en la que trabajo en México.
>
> > Gracias de antemano
>
> > On Jan 28, 4:15 pm, DenesL <[email protected]> wrote:
>
> > > Are you sure it worked before?
> > > As far as I know mysql is not supported for legacy DBs using
> > > primarykey.
>
> > > On Jan 28, 5:04 pm, drayco <[email protected]> wrote:
>
> > > > Hi, I updated my trunk version
>
> > > > However, The same issue is still
>
> > > > This is the new 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/iscada/models/cfedb.py", line
> > > > 16, in <module>
> > > >     migrate = False)
> > > >   File "/home/drayco/web2py/gluon/dal.py", line 3471, in define_table
> > > >     sequence_name=sequence_name))
> > > >   File "/home/drayco/web2py/gluon/dal.py", line 3755, in __init__
> > > >     "primarykey must be a list of fields from table '%s " % tablename
> > > > SyntaxError: primarykey must be a list of fields from table
> > > > 'med_dnpmst_4
>
> > > > SnapShot
>
> > > > <type 'exceptions.SyntaxError'>(primarykey must be a list of fields
> > > > from table 'med_dnpmst_4 )
>
> > > > File /home/drayco/web2py/gluon/dal.py in __init__ at line 3755
>
> > > > Function argument list
>
> > > > (self=<Table {'indice': <gluon.dal.Field object at 0x2...ractual':
> > > > <gluon.dal.Field object at 0x25b25d0>}>, db=<DAL {'_lastsql': "SET
> > > > sql_mode='NO_BACKSLASH_ES...tables': [], '_migrate': True,
> > > > '_pool_size': 10}>, tablename='med_dnpmst_4',
> > > > *fields=[<gluon.dal.Field object>, <gluon.dal.Field object>,
> > > > <gluon.dal.Field object>, <gluon.dal.Field object>, <gluon.dal.Field
> > > > object>, <gluon.dal.Field object>, <gluon.dal.Field object>],
> > > > **args={'primarykey': ['DireccionUTR', 'Indice'], 'sequence_name':
> > > > None, 'trigger_name': None})
>
> > > > Code listing
>
> > > > 3750.
> > > > 3751.
> > > > 3752.
> > > > 3753.
> > > > 3754.
> > > > 3755.
>
> > > > 3756.
> > > > 3757.
> > > > 3758.
> > > > 3759.
>
> > > >         if hasattr(self,'_primarykey'):
> > > >             for k in self._primarykey:
> > > >                 if k not in self.fields:
> > > >                     raise SyntaxError, \
> > > > "primarykey must be a list of fields from table '%s " % tablename
>
> > > >                 else:
> > > >                     self[k].notnull = True
>
> > > > On Jan 28, 8:35 am, Massimo Di Pierro <[email protected]>
> > > > wrote:
>
> > > > > this should now be fixed in trunk
>
> > > > > On Jan 8, 2:58 pm, Thadeus Burgess <[email protected]> wrote:
>
> > > > > >  All I know is that tables are issued as lowercase, but you can 
> > > > > > still access
> > > > > > your table as an uppercase attribute.
>
> > > > > > There is an inconsistency in the DAL somewhere because of this... 
> > > > > > Somewhere
> > > > > > it is forgetting to convert to lower case. I don't know why 
> > > > > > converting table
> > > > > > names to lower case is forced in web2py and I disagree with it.
>
> > > > > > for example:
>
> > > > > > db = DAL()
> > > > > > db.define_table('TableA', Field('Superman'))
> > > > > > # CREATE TABLE tablea WITH FIELDS superman
> > > > > > db(db.TableA.Superman == "clark").select().first().Superman
> > > > > > # SELECT * FROM tablea WHERE superman="clark"
>
> > > > > > --
> > > > > > Thadeus
>
> > > > > > On Sat, Jan 8, 2011 at 1:17 AM, mart <[email protected]> wrote:
> > > > > > > really? I didn't know, thanks for pointing that out...
>
> > > > > > > just out of curiosity....
>
> > > > > > > in
>
> > > > > > > in __getitem__
> > > > > > >    return dict.__getitem__(self, str(key))
> > > > > > > KeyError: 'tecnogradua'
>
> > > > > > > don't the attribute lookups get done by python ultimately?  Just
> > > > > > > trying to understand...
> > > > > > > how could this have worked if doing x.__getitem__ ? Even if dal 
> > > > > > > does a
> > > > > > > string.lower() or something, once the table is named and created,
> > > > > > > would something (outside of migrate) not catch that error and set 
> > > > > > > off
> > > > > > > the alarm even before any change need to happen?
>
> > > > > > > Thanks,
> > > > > > > Mart :)
>
> > > > > > > On Jan 8, 1:44 am, Thadeus Burgess <[email protected]> wrote:
> > > > > > > > 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 <[email protected]> 
> > > > > > > > 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 <[email protected]> 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 <[email protected]> wrote:
>
> > > > > > > > > > > Probably just being unhappy with the case :)
>
> > > > > > > > > > > tecnoGradua != tecnogradua
>
> > > > > > > > > > > Mart :)
>
> > > > > > > > > > > Field("tecnoGradua", 'string',
>
> > > > > > > > > > > On Jan 8, 12:57 am, drayco <[email protected]> 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),
>
> ...
>
> read more »

Reply via email to