Field('text')
is the problem. A field cannot be called 'text' because it is a reserved
keyword. The database complains.
On Friday, 24 August 2012 09:20:38 UTC-5, Manuele Pesenti wrote:
>
>
>
> 2012/8/24 Sergi Pons Freixes <[email protected] <javascript:>>
>
>> Hi all,
>>
>> I'm interested on implementing a many-to-many relation for kind of graph
>> structure, i.e., there are a set of nodes, with some on-way connections
>> between them. Part of my model is:
>>
>> db.define_table('bookpage',\
>> Field('content', 'text'),\
>> Field('image', 'upload'),\
>> Field('from_book', db.book),\
>> Field('modified_on', 'datetime', default=request.now))
>>
>> db.bookpage.content.requires = IS_NOT_EMPTY()
>> db.bookpage.from_book.requires = IS_NOT_EMPTY()
>> db.bookpage.modified_on.writable = False
>>
>> db.define_table('page_link',\
>> Field('in_page', db.bookpage),\
>> Field('out_page', db.bookpage),\
>> Field('text'))
>
>
> Are you sure you can call a field "text"? Or is it a reserved words? I'm
> not sure I can not try now...
>
> cheers
>
> Manuele
>
>
>>
>>
>>
>> But it is raising the error:
>>
>> <class 'gluon.contrib.pymysql.err.InternalError'> (1005, u"Can't create
>> table 'rincon.page_link' (errno: 150)")Traceback
>>
>> 1.
>> 2.
>> 3.
>> 4.
>> 5.
>> 6.
>> 7.
>> 8.
>> 9.
>> 10.
>> 11.
>> 12.
>> 13.
>> 14.
>> 15.
>> 16.
>> 17.
>> 18.
>> 19.
>> 20.
>> 21.
>>
>> Traceback (most recent call last):
>> File "/srv/www/cub3.net/public_html/web2py/gluon/restricted.py", line 205,
>> in restricted
>>
>> exec ccode in environment
>> File
>> "/srv/www/cub3.net/public_html/web2py/applications/rincon/models/tables.py"
>> <https://web2py.cub3.net/admin/default/edit/rincon/models/tables.py>, line
>> 36, in <module>
>>
>> Field('text'))
>> File "/srv/www/cub3.net/public_html/web2py/gluon/dal.py", line 6320, in
>> define_table
>>
>> polymodel=polymodel)
>> File "/srv/www/cub3.net/public_html/web2py/gluon/dal.py", line 719, in
>> create_table
>>
>> self.create_sequence_and_triggers(query,table)
>>
>> File "/srv/www/cub3.net/public_html/web2py/gluon/dal.py", line 1381, in
>> create_sequence_and_triggers
>>
>> self.execute(query)
>> File "/srv/www/cub3.net/public_html/web2py/gluon/dal.py", line 1392, in
>> execute
>>
>> return self.log_execute(*a, **b)
>>
>> File "/srv/www/cub3.net/public_html/web2py/gluon/dal.py", line 1386, in
>> log_execute
>>
>> ret = self.cursor.execute(*a, **b)
>>
>> File
>> "/srv/www/cub3.net/public_html/web2py/gluon/contrib/pymysql/cursors.py",
>> line 108, in execute
>>
>> self.errorhandler(self, exc, value)
>>
>> File
>> "/srv/www/cub3.net/public_html/web2py/gluon/contrib/pymysql/connections.py",
>> line 184, in defaulterrorhandler
>>
>> raise errorclass, errorvalue
>> InternalError: (1005, u"Can't create table 'rincon.page_link' (errno: 150)")
>>
>>
>> I am not able to see what is going wrong... any clue?
>>
>> --
>>
>>
>>
>>
>
>
>
> --
> Manuele Pesenti
> [email protected] <javascript:>
> https://sites.google.com/site/manuelepesenti/
>
>
--