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 <aurelijus.usec...@gmail.com> >>>>>>>>>> >>>>>>>>>>> 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 >>>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> --