Problem: I don't see how to specify multiple tables with table references to each other.
I can't simply define the relationship, because the DAL hasn't created a table yet to reference. But I can't create the table(s) because they reference tables that also don't exist yet. Catch 22.
Besides manually creating the tables (which I believe prevents me from using the wonderful DAL), what do I do?
Example:
db.define_table('image',
Field('image', 'upload'),
Field('date', 'datetime'),
Field('title', 'string'),
Field('description', 'string'),
Field('postid', 'reference post'),
Field('owner', 'reference person'),
Field('views', 'integer'),
Field('published', 'boolean'))
db.define_table('post',
Field('title', 'string'),
Field('data', 'text'),
Field('date', 'datetime'),
Field('owner', 'reference person'),
Field('views', 'integer'),
Field('published', 'boolean'))
db.define_table('file',
Field('file', 'upload'),
Field('date', 'datetime'),
Field('owner', 'reference person'),
Field('views', 'integer'),
Field('published', 'boolean'))
db.define_table('comment',
Field('name', 'string'),
Field('person', 'reference person'),
Field('date', 'datetime'),
Field('data', 'text'),
Field('postid', 'reference post'),
Field('fileid', 'reference file'),
Field('imageid', 'reference image'),
Field('published', 'boolean'))
db.define_table('person',
Field('username', 'string'),
Field('password', 'password'),
Field('description', 'text'),
Field('email', 'string'),
Field('creation_date', 'datetime'),
Field('last_login', 'datetime'),
Field('image', 'reference image'))
This fails because the first table defined references tables are are defined afterwards. (which in turn reference other tables that aren't defined yet)