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 <sachi...@gmail.com <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 > amicog...@jabber.linux.it <javascript:> > https://sites.google.com/site/manuelepesenti/ > > --