def NewtConfigurationFactory(key, dbconfig):
if not NEWT:
raise Exception("You must install the newt.db package before you can use "
"it as a dabase adapter.")
config = dbconfig.get('configuration', {})
dsn = "dbname={dbname} user={username} host={host} password={password} port={port}".format(**dbconfig['dsn']) # noqa
adapter = newt.db.storage(dsn=dsn, **dbconfig['options'])
db = newt.db.DB(dsn, **dbconfig['options'])
try:
conn = db.open()
rootobj = conn.root()
if not IDatabase.providedBy(rootobj):
alsoProvides(rootobj, IDatabase)
transaction.commit()
except:
pass
finally:
rootobj = None
conn.close()
db.close()
adapter = newt.db.storage(dsn, **dbconfig['options'])
db = newt.db._db.NewtDB(RequestAwareDB(adapter, **config))
return Database(key, db)
评论列表
文章目录