Mercurial > hg > Feedworm
view Database.py @ 62:abc0516a1c0c
FeedEntry provides a static method for creating new entries: better modularization and support for working with the class in interactive mode. FeedUpdater's normalize method is a module function now, again for ease of use in interactive scenarios
author | dirk@xanthippe.ping.de |
---|---|
date | Wed, 28 Jul 2010 20:30:34 +0200 |
parents | 254d5b89a6ca |
children | 842727971796 |
line wrap: on
line source
import Mapping import sqlalchemy import sqlalchemy.orm import sys import util # Keep the connection to the database only once. The feed updater and the GUI app will # operate on a single engine/session but this comes in handy for interactive use engine = None SessionMaker = None def createSession(): databaseUrl = _getDatabaseUrl() initEngine(databaseUrl) Mapping.createMapping(engine) initSessionMaker() return SessionMaker() def _getDatabaseUrl(): if len(sys.argv) < 2: print("Usage: %s <database url>" % (sys.argv[0])) sys.exit(1) return sys.argv[1] def initEngine(databaseUrl): global engine if engine is None: verbose = util.databaseLoggingEnabled() engine = sqlalchemy.create_engine(databaseUrl, echo=verbose) def initSessionMaker(): global SessionMaker if SessionMaker is None: SessionMaker = sqlalchemy.orm.sessionmaker(bind=engine)