this for example: https://github.com/yotech/agis/blob/master/app/agis/modules/agiscore/db/grupo.py
Not a complete correct example, but can pin/ping the idea 2017-01-28 9:05 GMT-05:00 Yoel Benitez Fonseca <[email protected]>: > sorry on 1.- sould say: > > 1.- Pass your models definitions to modules and packages on ``modules`` > > 2017-01-28 9:04 GMT-05:00 Yoel Benitez Fonseca <[email protected]>: >> I have being there :-/ ... what i do was: >> >> 1.- Pass your models definitions to models and packages on ``modules`` >> 2.- In the modules put each table definition on a method, for example: >> >> define_tables(): >> db = current.db >> if not hasattr(db, 'some_table'): >> db.define_table('some_table', ....) >> >> 3.- then whenever a some_other_table depends on some_table, in the >> module corresponding to some_other_table you import the corresponding >> define_tables of some_table and call it to ensure it get defined >> before some_other_table references it. >> 4.- use conditional models, and in the conditional model of a given >> controller you import and call only the one you need. >> >> This way, the imports and define_tables ensure the table definitions >> precedences and work out the needed for you.... the downside of >> passing models definitions to modules is that u need to reload the >> complete web2py instance... hence, if you are running it trough apache >> it must be restarted for changes to refresh. >> >> Regards, >> >> >> 2017-01-26 7:28 GMT-05:00 Bentorey Hernández Cruz <[email protected]>: >>> Hi all, >>> I have a question related to table definitions in modules. I'm working >>> in an app that has more than a hundred tables and I noticed that even using >>> lazy tables it took too much for browsing the site. >>> I decided to move some of the tables to a module and call them on >>> demand, and the performance improved a lot. >>> The problem is if there's any way to define new tables from the module. >>> >>> Whatever I do, I get the error: >>> >>> ProgrammingError: ('ERROR', '42P01', 'relation "test_t" does not exist') >>> >>> Definition of test_t in module >>>> >>>> from gluon import * >>>> from gluon.dal import Field >>>> def defineTEST(db): >>>> if 'test_t' not in db: >>>> db.define_table('test_t', >>>> Field('bid', 'reference b_t', ondelete='CASCADE'), >>>> Field('date', 'date'), >>>> migrate=app_settings.migrate) >>> >>> >>> Code added to 10dbmodel.py in models: >>>> >>>> from app.modules import defineTEST >>>> defineTEST(db) >>> >>> >>> And the table is not created. >>> >>> Thank you! >>> >>> -- >>> Resources: >>> - http://web2py.com >>> - http://web2py.com/book (Documentation) >>> - http://github.com/web2py/web2py (Source code) >>> - https://code.google.com/p/web2py/issues/list (Report Issues) >>> --- >>> You received this message because you are subscribed to the Google Groups >>> "web2py-users" group. >>> To unsubscribe from this group and stop receiving emails from it, send an >>> email to [email protected]. >>> For more options, visit https://groups.google.com/d/optout. >> >> >> >> -- >> Yoel Benítez Fonseca >> http://redevil.cubava.cu/ >> $ python -c "import this" > > > > -- > Yoel Benítez Fonseca > http://redevil.cubava.cu/ > $ python -c "import this" -- Yoel Benítez Fonseca http://redevil.cubava.cu/ $ python -c "import this" -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.

