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
>>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
--