def do_run(self): args = self.parse_command_line() if args.blocking_refresh: concurrently = '' else: concurrently = 'CONCURRENTLY' # Initialize database from model import ( MaterializedWork, MaterializedWorkWithGenre, ) db = self._db for i in (MaterializedWork, MaterializedWorkWithGenre): view_name = i.__table__.name a = time.time() db.execute("REFRESH MATERIALIZED VIEW %s %s" % (concurrently, view_name)) b = time.time() print "%s refreshed in %.2f sec." % (view_name, b-a) # Close out this session because we're about to create another one. db.commit() db.close() # The normal database connection (which we want almost all the # time) wraps everything in a big transaction, but VACUUM # can't be executed within a transaction block. So create a # separate connection that uses autocommit. url = Configuration.database_url() engine = create_engine(url, isolation_level="AUTOCOMMIT") engine.autocommit = True a = time.time() engine.execute("VACUUM (VERBOSE, ANALYZE)") b = time.time() print "Vacuumed in %.2f sec." % (b-a)
def initialize_database(autoinitialize=True): testing = 'TESTING' in os.environ db_url = Configuration.database_url() if autoinitialize: SessionManager.initialize(db_url) session_factory = SessionManager.sessionmaker(db_url) _db = flask_scoped_session(session_factory, app) app._db = _db log_level = LogConfiguration.initialize(_db, testing=testing) debug = log_level == 'DEBUG' app.config['DEBUG'] = debug app.debug = debug _db.commit() logging.getLogger().info("Application debug mode==%r" % app.debug)
def get_database_connection(cls): url = Configuration.database_url() engine, connection = SessionManager.initialize(url) return engine, connection
) from flask_sqlalchemy_session import flask_scoped_session from sqlalchemy.orm import sessionmaker from config import Configuration from core.model import ( ConfigurationSetting, SessionManager, ) from core.log import LogConfiguration from core.util import LanguageCodes from flask.ext.babel import Babel app = Flask(__name__) testing = 'TESTING' in os.environ db_url = Configuration.database_url(testing) # Initialize a new database session unless we were told not to # (e.g. because a script already initialized it). autoinitialize = os.environ.get('AUTOINITIALIZE') != 'False' if autoinitialize: SessionManager.initialize(db_url) session_factory = SessionManager.sessionmaker(db_url) _db = flask_scoped_session(session_factory, app) if autoinitialize: SessionManager.initialize_data(_db) app.config['BABEL_DEFAULT_LOCALE'] = LanguageCodes.three_to_two[ Configuration.localization_languages()[0]] app.config['BABEL_TRANSLATION_DIRECTORIES'] = "../translations" babel = Babel(app)
from flask import ( Flask, Response, redirect, ) from flask_sqlalchemy_session import flask_scoped_session from sqlalchemy.orm import sessionmaker from config import Configuration from core.model import SessionManager from core.util import LanguageCodes from flask.ext.babel import Babel app = Flask(__name__) testing = 'TESTING' in os.environ db_url = Configuration.database_url(testing) SessionManager.initialize(db_url) session_factory = SessionManager.sessionmaker(db_url) _db = flask_scoped_session(session_factory, app) SessionManager.initialize_data(_db) app.config['BABEL_DEFAULT_LOCALE'] = LanguageCodes.three_to_two[Configuration.localization_languages()[0]] app.config['BABEL_TRANSLATION_DIRECTORIES'] = "../translations" babel = Babel(app) import routes if Configuration.get(Configuration.INCLUDE_ADMIN_INTERFACE): import admin.routes debug = Configuration.logging_policy().get("level") == 'DEBUG' logging.getLogger().info("Application debug mode==%r" % debug)