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 »

