In my experience, "can" doesn't always mean "should". There may be an issue with db2 not seeing the table definitions from db1. For testing, do something like this to explicitly share the "test" table definition:
def define_tables(db, migrate=False):
db.define_table('test', Field('testfield'), migrate=migrate)
define_tables(db1)
define_tables(db2)

