In summary, creating a person table from the web2py shell creates an entry in the SQL log but does not create the table.
I'm using the images example webapp for working the examples in Chapter 26<http://web2py.com/books/default/chapter/29/6>. I entered... >>> db.define_table('person', Field('name'), format='%(name)s %(id)s') ...into the shell. Then I entered... >>> print db.tables ...and the shell returned ['auth_user', 'auth_group', 'auth_membership', 'auth_permission', 'auth_event', 'auth_cas', 'image', 'comment'] Notice no 'person' table. Yet the sql log shows the person table has been created. timestamp: 2012-02-10T12:59:39.940000 CREATE TABLE person( id INTEGER PRIMARY KEY AUTOINCREMENT, name CHAR(512) ); success!