can you reproduce. If this is a web2py problem, it needs to be fixed.
On Tuesday, 7 August 2012 10:41:27 UTC-5, Yarin wrote:
>
> Think it actually does return a non-specific SQL syntax error that gets
> ticketed by web2py- but web2py never goes to an error screen and the
> browser just hangs- if i recall..
>
> On Tuesday, August 7, 2012 11:30:37 AM UTC-4, Massimo Di Pierro wrote:
>>
>> Damn MySQL. It should not hang, it should return a operationalerror.
>>
>>
>>
>> On Tuesday, 7 August 2012 10:03:44 UTC-5, Yarin wrote:
>>>
>>> Change the name of in your Field('long') field in maps table - it's a
>>> reserved keyword in MySQL and will cause it to hang.
>>>
>>> On Tuesday, August 7, 2012 10:57:07 AM UTC-4, Aurelijus Useckas wrote:
>>>>
>>>> Here it is:
>>>>
>>>> db.define_table('tag',
>>>> Field('tag', notnull=True, unique=True),
>>>> format='%(tag)s')
>>>>
>>>> db.define_table('city',
>>>> Field('name', notnull=True, unique=True),
>>>> format='%(name)s')
>>>>
>>>> db.define_table('maps',
>>>> Field('name'),
>>>> Field('last_name'),
>>>> Field('long'),
>>>> Field('lat'))
>>>>
>>>>
>>>> db.define_table('asoc',
>>>> Field('name', label='Pavadinimas', unique=True),
>>>> Field('City', 'list:reference city', label='Miestas'),
>>>> Field('address', label='Adresas'),
>>>> Field('www'),
>>>> Field('tel'),
>>>> Field('fax'),
>>>> Field('email'),
>>>> Field('President', label='Asociacijos prezidentas'),
>>>> Field('CEO', label='Asociacijos generalinis'),
>>>> Field('CEO_tel', label='Generalinio tel.'),
>>>> Field('CEO_email', label='Generalinio email'),
>>>> Field('CEO_mob', label='Generalinio mobilus'),
>>>> Field('Pres_tel', label='Prezidento tel.'),
>>>> Field('Pres_email', label='Prezidento email'),
>>>> Field('Pres_mob', label='Prezidento mobilus'),
>>>> Field('submited_at', 'datetime', default=request.now,
>>>> writable=False, readable=False),
>>>> Field('updated_at', 'datetime', default=request.now,
>>>> update=request.now, writable=False, readable=False),
>>>> Field('submited_by', db.auth_user, default=auth.user_id,
>>>> writable=False, readable=False),
>>>> Field('updated_by', db.auth_user, update=auth.user_id,
>>>> writable=False, readable=False),
>>>> format='%(name)s')
>>>>
>>>> db.asoc.email.requires=IS_EMPTY_OR(IS_EMAIL())
>>>> db.asoc.CEO_email.requires=IS_EMPTY_OR(IS_EMAIL())
>>>> db.asoc.Pres_email.requires=IS_EMPTY_OR(IS_EMAIL())
>>>> db.asoc.name.requires=IS_NOT_EMPTY()
>>>>
>>>> db.define_table('countries',
>>>> Field('Country', notnull=True, unique=True),
>>>> Field('latitude', readable=True, writable=False),
>>>> Field('longitude', readable=True, writable=False),
>>>> format = '%(Country)s'
>>>> )
>>>>
>>>> def horizontal_checkboxes(f,v):
>>>> horizontal_widget = SQLFORM.widgets.checkboxes.widget(f,v,cols=4)
>>>> return locals()
>>>>
>>>> db.define_table('company',
>>>> Field('title', label='Pavadinimas', unique=True),
>>>> Field('CEO', label='Generalinis dir.'),
>>>> Field('code', 'integer', label='Įmonės kodas',unique=True,
>>>> default=None),
>>>> Field('revenue', 'integer', label='Metinė apyvarta (mln.)'),
>>>> Field('workers', 'integer', label='Darbuotojų skaičius'),
>>>> # Field('logo', 'upload', label='Įmonės logo'),
>>>> Field('produce_tag', 'list:reference tag', label='Produkcija',
>>>> default=None),
>>>> Field('produce', label='Produkcija (smulkiau)'),
>>>> Field('Email', default=None, notnull=False),
>>>> Field('Tel'),
>>>> Field('Fax'),
>>>> Field('www'),
>>>> Field('City', 'list:reference city', label='Miestas'),
>>>> Field('address', label='Adresas'),
>>>> Field('extra_contacts', 'boolean', label='Pridėti kontakt.
>>>> duomenų'),
>>>> Field('extra_contacts_2', 'boolean', label='Pridėti kontakt.
>>>> duomenų'),
>>>> Field('name_1', label='Vardas'),
>>>> Field('pareigos_1', label='Pareigos'),
>>>> Field('tel_1', label='Papildomas tel.'),
>>>> Field('email_1', label='Papildomas el. paštas'),
>>>> Field('name_2', label='Vardas'),
>>>> Field('pareigos_2', label='Pareigos'),
>>>> Field('tel_2', label='Papildomas tel.'),
>>>> Field('email_2', label='Papildomas el. paštas'),
>>>> Field('Association', db.asoc, label='Priklauso asociacijai'),
>>>> Field('other', 'text', label='Papildoma info'),
>>>> Field('submited_at', 'datetime', default=request.now,
>>>> writable=False, readable=False),
>>>> Field('submited_by', db.auth_user, default=auth.user_id,
>>>> writable=False, readable=False),
>>>> Field('updated_at', 'datetime', update=request.now, writable=False,
>>>> readable=False),
>>>> Field('updated_by', db.auth_user, update=auth.user_id,
>>>> writable=False, readable=False),
>>>> Field('exports_wants_to', 'list:reference countries', label='Domina
>>>> šalys'),
>>>> Field('exports_to', 'list:reference countries', label='Eksportuoja
>>>> į', required=False),
>>>> Field('imports_from', 'list:reference countries', label='Importuoja
>>>> iš', required=False),
>>>> format = '%(title)s')
>>>>
>>>> from plugin_multiselect_widget import (
>>>> hmultiselect_widget, vmultiselect_widget,
>>>> rhmultiselect_widget, rvmultiselect_widget,
>>>> )
>>>>
>>>> db.company.exports_to.widget = hmultiselect_widget
>>>> db.company.imports_from.widget = hmultiselect_widget
>>>> db.company.exports_wants_to.widget = hmultiselect_widget
>>>>
>>>> db.company.produce_tag.widget = lambda field,value: \
>>>> SQLFORM.widgets.checkboxes.widget(field,value,cols=6)
>>>>
>>>> db.company.Email.requires=IS_EMPTY_OR(IS_EMAIL(error_message='El.
>>>> paštas!'))
>>>> db.company.email_1.requires=IS_EMPTY_OR(IS_EMAIL())
>>>> db.company.email_2.requires=IS_EMPTY_OR(IS_EMAIL())
>>>> db.company.code.requires=IS_EMPTY_OR(IS_NOT_IN_DB(db, db.company.code))
>>>> db.company.exports_to.requires=IS_EMPTY_OR(IS_IN_DB(db,
>>>> db.countries.Country))
>>>> db.company.exports_to.requires=IS_IN_DB(db,'countries.id
>>>> ',db.countries._format,multiple=True)
>>>> db.company.exports_wants_to.requires=IS_IN_DB(db,'countries.id
>>>> ',db.countries._format,multiple=True)
>>>> db.company.produce_tag.requires=IS_IN_DB(db,'tag.id
>>>> ',db.tag._format,multiple=True)
>>>>
>>>> db.company.Association.requires=IS_IN_DB(db,'asoc.id',db.asoc._format,
>>>> zero='-----Pasirinkti-----')
>>>>
>>>> db.define_table('comment',
>>>> Field('body','text',label='Your comment'),
>>>> Field('company', db.company, 'list: reference company',
>>>> readable=False, writable=False),
>>>> Field('posted_on','datetime',default=request.now),
>>>> Field('posted_by', db.auth_user, 'list: reference auth_user',
>>>> default=auth.user_id))
>>>>
>>>> db.comment.posted_on.writable=db.comment.posted_on.readable=False
>>>> db.comment.posted_by.writable=db.comment.posted_by.readable=False
>>>> db.comment.company.default = request.args(0)
>>>>
>>>>
>>>>
>>>> On Tuesday, August 7, 2012 5:36:49 PM UTC+3, Massimo Di Pierro wrote:
>>>>>
>>>>> Can you please post the entire mode? My guess is an issue with
>>>>> capitalization perhaps combined with corruption of table files.
>>>>>
>>>>> On Tuesday, 7 August 2012 06:00:06 UTC-5, Aurelijus Useckas wrote:
>>>>>>
>>>>>> I've tried nearly any possible syntax, but with no success. Any line
>>>>>> with the reference to other table causes an error 1005 / 150:
>>>>>> "table creation failed because a foreign key constraint was not
>>>>>> correctly formed"
>>>>>> Wasted a lot of time on it with no avail, guess will be forced to go
>>>>>> back to ol' SQLite :)
>>>>>>
>>>>>> On Wednesday, August 1, 2012 8:03:05 PM UTC+3, Massimo Di Pierro
>>>>>> wrote:
>>>>>>>
>>>>>>> Try
>>>>>>>
>>>>>>> Field('City', 'list:reference City', label='Miestas'),
>>>>>>>
>>>>>>> On Wednesday, 1 August 2012 11:05:02 UTC-5, Aurelijus Useckas wrote:
>>>>>>>>
>>>>>>>> tried it, still the same error :( thnx anyway
>>>>>>>>
>>>>>>>> On Wednesday, August 1, 2012 6:31:52 PM UTC+3, Massimo Di Pierro
>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>> Yes. this is wrong:
>>>>>>>>>
>>>>>>>>> Field('City', db.city, 'list:reference city', label='Miestas'),
>>>>>>>>>
>>>>>>>>> should be
>>>>>>>>>
>>>>>>>>> Field('City', 'list:reference city', label='Miestas'),
>>>>>>>>>
>>>>>>>>> On Wednesday, 1 August 2012 09:15:07 UTC-5, Aurelijus Useckas
>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>> Thank you Massimo, but the 1005/150 mysql problem seems to be
>>>>>>>>>> smth wring with foreign key (merging of tables). Are there any flaws
>>>>>>>>>> in my
>>>>>>>>>> DAL syntax?
>>>>>>>>>>
>>>>>>>>>> This line seems to be the trigger:
>>>>>>>>>> Field('City', db.city, 'list:reference city', label='Miestas'),
>>>>>>>>>>
>>>>>>>>>> it references:
>>>>>>>>>>
>>>>>>>>>> db.define_table('city',
>>>>>>>>>> Field('name', notnull=True, unique=True),
>>>>>>>>>> format='%(name)s')
>>>>>>>>>>
>>>>>>>>>> any ideas what's bothering mysql?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Wednesday, August 1, 2012 4:56:03 PM UTC+3, Massimo Di Pierro
>>>>>>>>>> wrote:
>>>>>>>>>>>
>>>>>>>>>>> db = DAL('mysql://....', check_reserved=['common','mysql'])
>>>>>>>>>>>
>>>>>>>>>>> Anyway, I am not sure your problem is that you are using a
>>>>>>>>>>> reserved keyword. Perhaps the table exists already. I am also
>>>>>>>>>>> surprised you
>>>>>>>>>>> are getting a pymysql InternalError and not an OperationalError.
>>>>>>>>>>>
>>>>>>>>>>> On Wednesday, 1 August 2012 07:45:01 UTC-5, Aurelijus Useckas
>>>>>>>>>>> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>> I've changed the long into longitude and it seems to be solved
>>>>>>>>>>>> but I still get errors:
>>>>>>>>>>>>
>>>>>>>>>>>> p2
>>>>>>>>>>>> S'<class \'gluon.contrib.pymysql.err.InternalError\'> (1005,
>>>>>>>>>>>> u"Can\'t create table \'./lpkdb/asoc.frm\' (errno: 150)")'
>>>>>>>>>>>>
>>>>>>>>>>>> Now it says it cannot create next table, which is:
>>>>>>>>>>>>
>>>>>>>>>>>> db.define_table('asoc',
>>>>>>>>>>>> Field('name', label='Pavadinimas', unique=True),
>>>>>>>>>>>> Field('City', db.city, 'list:reference city',
>>>>>>>>>>>> label='Miestas'),
>>>>>>>>>>>> Field('address', label='Adresas'),
>>>>>>>>>>>> Field('www'),
>>>>>>>>>>>> Field('tel'),
>>>>>>>>>>>> Field('fax'),
>>>>>>>>>>>> Field('email'),
>>>>>>>>>>>> Field('President', label='Asociacijos prezidentas'),
>>>>>>>>>>>> Field('CEO', label='Asociacijos generalinis'),
>>>>>>>>>>>> Field('CEO_tel', label='Generalinio tel.'),
>>>>>>>>>>>> Field('CEO_email', label='Generalinio email'),
>>>>>>>>>>>> Field('CEO_mob', label='Generalinio mobilus'),
>>>>>>>>>>>> Field('Pres_tel', label='Prezidento tel.'),
>>>>>>>>>>>> Field('Pres_email', label='Prezidento email'),
>>>>>>>>>>>> Field('Pres_mob', label='Prezidento mobilus'),
>>>>>>>>>>>> Field('submited_at', 'datetime', default=request.now,
>>>>>>>>>>>> writable=False, readable=False),
>>>>>>>>>>>> Field('updated_at', 'datetime', default=request.now,
>>>>>>>>>>>> update=request.now, writable=False, readable=False),
>>>>>>>>>>>> Field('submited_by', db.auth_user, default=auth.user_id,
>>>>>>>>>>>> writable=False, readable=False),
>>>>>>>>>>>> Field('updated_by', db.auth_user, update=auth.user_id,
>>>>>>>>>>>> writable=False, readable=False),
>>>>>>>>>>>> format='%(name)s')
>>>>>>>>>>>>
>>>>>>>>>>>> Are there some guidlines on how to construct DAL field names in
>>>>>>>>>>>> order to avoid any conflict while migrating to mysql?
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On Wednesday, August 1, 2012 3:36:51 PM UTC+3, tomasz bandura
>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>> Is it 'long' a mysql's reserved word?
>>>>>>>>>>>>>
>>>>>>>>>>>>> Regards
>>>>>>>>>>>>> Tomasz
>>>>>>>>>>>>>
>>>>>>>>>>>>> 2012/8/1 Aurelijus Useckas <[email protected]>
>>>>>>>>>>>>>
>>>>>>>>>>>>>> this is the trigger i guess:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> db.define_table('maps',
>>>>>>>>>>>>>> Field('name'),
>>>>>>>>>>>>>> Field('last_name'),
>>>>>>>>>>>>>> Field('long'),
>>>>>>>>>>>>>> Field('lat'),
>>>>>>>>>>>>>> format='%(name)s')
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Wednesday, August 1, 2012 3:30:40 PM UTC+3, Aurelijus
>>>>>>>>>>>>>> Useckas wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> I've built the app on SQLite and now want to migrate to the
>>>>>>>>>>>>>>> server based mysql. BUT web2py hangs in the middle of creating,
>>>>>>>>>>>>>>> basicaly
>>>>>>>>>>>>>>> just after the auth tables. When I restart the apache I can see
>>>>>>>>>>>>>>> auth tables
>>>>>>>>>>>>>>> as well as a few from my app.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> this is the err ticket that I get:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> (dp1
>>>>>>>>>>>>>>> S'output'
>>>>>>>>>>>>>>> p2
>>>>>>>>>>>>>>> S'<class \'gluon.contrib.pymysql.err.**ProgrammingError\'>
>>>>>>>>>>>>>>> (1064, u"You have an error in your SQL syntax; check the manual
>>>>>>>>>>>>>>> that
>>>>>>>>>>>>>>> corresponds to your MySQL server version for the right syntax
>>>>>>>>>>>>>>> to use near
>>>>>>>>>>>>>>> \'long VARCHAR(255),\\n lat VARCHAR(255),\\n PRIMARY
>>>>>>>>>>>>>>> KEY(id)\\n)
>>>>>>>>>>>>>>> ENGINE=InnoDB CHA\' at line 5")'
>>>>>>>>>>>>>>> p3
>>>>>>>>>>>>>>> sS'layer'
>>>>>>>>>>>>>>> p4
>>>>>>>>>>>>>>> S'/opt/web-apps/web2py/**applications/init/models/db_**
>>>>>>>>>>>>>>> comp.py'
>>>>>>>>>>>>>>> p5
>>>>>>>>>>>>>>> sS'code'
>>>>>>>>>>>>>>> p6
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> thnx
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
--