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

-- 



Reply via email to