thanks alot! that solved my problem! On 24 נובמבר, 12:29, Alessandro Molina <[email protected]> wrote: > The issue is related to the fact that you probably also have two > different DBSession to connect to the two different engines and that > some entities are available on an engine and some are not. So it tries > to fetch everything from the DBSession that has been passes as the > argument to the Admin controller failing to find some tables. > > To solve this you must mount two separate admin controllers. > To the first admin controller pass as the first argument a list of the > models that are available on the first session and the first session > as the second arguments. > To the second admin pass the list of the models available on the other > session and the other session. > > Like: > admin1 = AdminController([User, Group, Permission], DBSession, > config_type=TGAdminConfig) > admin2 = AdminController([This, That], DBSession2, > config_type=TGAdminConfig) > > > > > > > > On Wed, Nov 23, 2011 at 6:46 PM, alonn <[email protected]> wrote: > > when connecting to 2 db( one sqllite for tg2 auth and the second > > mssql) > > I commented out the sqlalchemy.url in development.ini and instead > > wrote 2 lines: sqlalchemy.first.url and sqlalchemy.second.url > > I also changed app_cfg and model.__init__ according to the docs - so > > everything finally worked - but! > > when I run paster setup-app development.ini in the end I get a > > "keyerror:sqlalchemy.url" .I think this is called from schema.py who > > ends with: > > try: > > main(argv=['version_control'], url=config['sqlalchemy.url'], > > repository='migration', name='migration') > > except DatabaseAlreadyControlledError: > > print 'Database already under version control' > > and some of the information isn't loaded to sqllite (like users and > > passwords) > > > when I manually change the sqlalchemy.url to sqlalchemy.first.url - > > everything works fine except for tg2 admin screen where when I try to > > enter the class mapped to the second db (not users,groups etc) I get > > an error > > > OperationalError: (OperationalError) no such table:.. > > where the traceback is : > > Module weberror.evalexception:431 in respond view > >>> app_iter = self.application(environ, detect_start_response) > > Module tg.configuration:825 in remover view > >>> return app(environ, start_response) > > Module repoze.tm:24 in __call__ view > >>> result = self.application(environ, save_status_and_headers) > > Module repoze.who.middleware:107 in __call__ view > >>> app_iter = app(environ, wrapper.wrap_start_response) > > Module tw.core.middleware:46 in __call__ view > >>> return self.wsgi_app(environ, start_response) > > Module tw.core.middleware:72 in wsgi_app view > >>> resp = req.get_response(self.application) > > Module webob.request:1053 in get_response view > >>> application, catch_exc_info=False) > > Module webob.request:1022 in call_application view > >>> app_iter = application(self.environ, start_response) > > Module tw.core.resource_injector:70 in _injector view > >>> resp = req.get_response(app) > > Module webob.request:1053 in get_response view > >>> application, catch_exc_info=False) > > Module webob.request:1022 in call_application view > >>> app_iter = application(self.environ, start_response) > > Module beaker.middleware:73 in __call__ view > >>> return self.app(environ, start_response) > > Module beaker.middleware:152 in __call__ view > >>> return self.wrap_app(environ, session_start_response) > > Module routes.middleware:131 in __call__ view > >>> response = self.app(environ, start_response) > > Module pylons.wsgiapp:107 in __call__ view > >>> response = self.dispatch(controller, environ, start_response) > > Module pylons.wsgiapp:312 in dispatch view > >>> return controller(environ, start_response) > > Module priorityagent.lib.base:31 in __call__ view > >>> return TGController.__call__(self, environ, start_response) > > Module pylons.controllers.core:211 in __call__ view > >>> response = self._dispatch_call() > > Module pylons.controllers.core:162 in _dispatch_call view > >>> response = self._inspect_call(func) > > Module pylons.controllers.core:105 in _inspect_call view > >>> result = self._perform_call(func, args) > > Module tg.controllers.dispatcher:254 in _perform_call view > >>> r = self._call(func, params, remainder=remainder) > > Module tg.controllers.decoratedcontroller:116 in _call view > >>> output = controller(*remainder, **dict(params)) > > Module tgext.crud.controller:119 in get_all view > >>> values = self.table_filler.get_value(**kw) > > Module sprox.fillerbase:191 in get_value view > >>> count, objs = self._do_get_provider_count_and_objs(**kw) > > Module sprox.fillerbase:173 in > > _do_get_provider_count_and_objs view > >>> count, objs = self.__provider__.query(self.__entity__, limit, offset, > >>> self.__limit_fields__, order_by, desc) > > Module sprox.sa.provider:397 in query view > >>> count = query.count() > > Module sqlalchemy.orm.query:2375 in count view > >>> return self.from_self(col).scalar() > > Module sqlalchemy.orm.query:2020 in scalar view > >>> ret = self.one() > > Module sqlalchemy.orm.query:1989 in one view > >>> ret = list(self) > > Module sqlalchemy.orm.query:2032 in __iter__ view > >>> return self._execute_and_instances(context) > > Module sqlalchemy.orm.query:2047 in _execute_and_instances > > view > >>> result = conn.execute(querycontext.statement, self._params) > > Module sqlalchemy.engine.base:1399 in execute view > >>> params) > > Module sqlalchemy.engine.base:1532 in _execute_clauseelement > > view > >>> compiled_sql, distilled_params > > Module sqlalchemy.engine.base:1640 in _execute_context view > >>> context) > > Module sqlalchemy.engine.base:1633 in _execute_context view > >>> context) > > Module sqlalchemy.engine.default:330 in do_execute view > >>> cursor.execute(statement, parameters) > > OperationalError: (OperationalError) no such table: SOMETABLE u'SELECT > > count(*) AS count_1 \nFROM (SELECT "SOMETABLE "."EVENTCODE" AS > > "SOMETABLE _EVENTCODE" \nFROM "SOMETABLE ") AS anon_1' () > > > be glad to any help with this > > > -- > > You received this message because you are subscribed to the Google Groups > > "TurboGears" group. > > To post to this group, send email to [email protected]. > > To unsubscribe from this group, send email to > > [email protected]. > > For more options, visit this group > > athttp://groups.google.com/group/turbogears?hl=en.
-- You received this message because you are subscribed to the Google Groups "TurboGears" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/turbogears?hl=en.

