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" -- 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.

