Log message for revision 41303: When a database is created "by hand" from a custom_zodb.py during startup, we still want to put it in the dbtab multidatabases dict. This happens when unit tests call Zope2.startup(), because Testing has a specific custom_zodb.py loaded at startup that uses a DemoStorage.
Changed: U Zope/branches/2.9/lib/python/Zope2/App/startup.py -=- Modified: Zope/branches/2.9/lib/python/Zope2/App/startup.py =================================================================== --- Zope/branches/2.9/lib/python/Zope2/App/startup.py 2006-01-13 16:26:04 UTC (rev 41302) +++ Zope/branches/2.9/lib/python/Zope2/App/startup.py 2006-01-13 16:47:56 UTC (rev 41303) @@ -45,28 +45,31 @@ # Import products OFS.Application.import_products() + configuration = getConfiguration() + # Open the database + dbtab = configuration.dbtab try: # Try to use custom storage try: - m=imp.find_module('custom_zodb',[getConfiguration().testinghome]) + m=imp.find_module('custom_zodb',[configuration.testinghome]) except: - m=imp.find_module('custom_zodb',[getConfiguration().instancehome]) + m=imp.find_module('custom_zodb',[configuration.instancehome]) except: # if there is no custom_zodb, use the config file specified databases - configuration = getConfiguration() - DB = configuration.dbtab.getDatabase('/', is_root=1) - Globals.BobobaseName = DB.getName() + DB = dbtab.getDatabase('/', is_root=1) else: m=imp.load_module('Zope2.custom_zodb', m[0], m[1], m[2]) + sys.modules['Zope2.custom_zodb']=m + if hasattr(m,'DB'): DB=m.DB + dbtab.databases.update(getattr(DB, 'databases', {})) + DB.databases = dbtab.databases else: - storage = m.Storage - DB = ZODB.DB(storage) + DB = ZODB.DB(m.Storage, databases=dbtab.databases) - Globals.BobobaseName = DB.getName() - sys.modules['Zope2.custom_zodb']=m + Globals.BobobaseName = DB.getName() if DB.getActivityMonitor() is None: from ZODB.ActivityMonitor import ActivityMonitor _______________________________________________ Zope-Checkins maillist - Zope-Checkins@zope.org http://mail.zope.org/mailman/listinfo/zope-checkins