def main(): config_fname = sys.argv[1] settings = get_appsettings(config_fname, 'assembl') set_config(settings) logging.config.fileConfig(config_fname) configure_zmq(settings['changes_socket'], False) configure_engine(settings, True) session = get_session_maker()() add_semantic_analysis_tab_to_all_discussions(session)
def main(): parser = argparse.ArgumentParser() parser.add_argument("configuration", help="configuration file") parser.add_argument("-d", "--discussion", help="id of discussion") args = parser.parse_args() settings = get_appsettings(args.configuration, 'assembl') set_config(settings) configure_engine(settings, True) session = get_session_maker()() semantic_analyze_all_posts(session, args.discussion)
def engine_from_settings(config, full_config=False): settings = get_appsettings(config, 'assembl') if settings['sqlalchemy.url'].startswith('virtuoso:'): db_schema = '.'.join((settings['db_schema'], settings['db_user'])) else: db_schema = settings['db_schema'] set_config(settings, True) session = None if full_config: env = bootstrap(config) configure_zmq(settings['changes_socket'], False) configure_indexing() configure_model_watcher(env['registry'], 'assembl') logging.config.fileConfig(config) session = get_session_maker() metadata = get_metadata() else: session = make_session_maker(zope_tr=True) import assembl.models from assembl.lib.sqla import class_registry engine = configure_engine(settings, session_maker=session) metadata = get_metadata() metadata.bind = engine session = sessionmaker(engine)() return (metadata, session)
def main(): parser = argparse.ArgumentParser() parser.add_argument( "configuration", help="configuration file with destination database configuration") args = parser.parse_args() settings = get_appsettings(args.configuration, 'assembl') set_config(settings) logging.config.fileConfig(args.configuration) configure_zmq(settings['changes.socket'], False) configure_engine(settings, True) session = get_session_maker()() try: reindex_all_contents(session) transaction.commit() except Exception as e: traceback.print_exc() pdb.post_mortem()
def main(): parser = argparse.ArgumentParser() parser.add_argument( "configuration", help="configuration file with destination database configuration") args = parser.parse_args() env = bootstrap(args.configuration) settings = get_appsettings(args.configuration, 'assembl') set_config(settings) logging.config.fileConfig(args.configuration) configure_zmq(settings['changes_socket'], False) configure_indexing() configure_engine(settings, True) session = get_session_maker()() try: reindex_all_contents(session) transaction.commit() except Exception as e: traceback.print_exc() pdb.post_mortem()
def main(): parser = argparse.ArgumentParser() parser.add_argument("configuration", help="The configuration of the application.", default="local.ini") args = parser.parse_args() env = bootstrap(args.configuration) settings = get_appsettings(args.configuration, 'assembl') set_config(settings) configure_zmq(settings['changes_socket'], False) configure_model_watcher(env['registry'], 'assembl') _ = configure_engine(settings, True) try: from assembl.graphql.schema import Schema, generate_schema_json_from_schema generate_schema_json_from_schema(Schema, spec_wrap=True) except Exception as _: traceback.print_exc() pdb.post_mortem()
def engine_from_settings(config, full_config=False): settings = get_appsettings(config, 'idealoom') db_schema = settings['db_schema'] set_config(settings, True) session = None if full_config: env = bootstrap(config) configure_zmq(settings['changes_socket'], False) configure_model_watcher(env['registry'], 'idealoom') logging.config.fileConfig(config) else: session = make_session_maker(zope_tr=True) import assembl.models from assembl.lib.sqla import class_registry engine = configure_engine(settings, session_maker=session) metadata = get_metadata() metadata.bind = engine session = sessionmaker(engine)() return (metadata, session)
help="All tables fkeys will be rebuilt.") parser.add_argument("--rebuild_all_tables", action="store_true", default=False, help="All tables will be rebuilt.") parser.add_argument("--ensure_inheritance", action="store_true", default=False, help="Make sure no class has a missing subclass row.") parser.add_argument("-d", "--delete_missing", action="store_true", default=False, help="Delete rows with missing corresponding values. (otherwise abort rebuild.)") parser.add_argument("--reset_extract_discussion", action="store_true", default=False, help="Special case: rebuild a dependent foreign key on extract table") args = parser.parse_args() settings = get_appsettings(args.configuration, 'assembl') set_config(settings) logging.config.fileConfig(args.configuration) configure_zmq(settings['changes_socket'], False) configure_indexing() configure_engine(settings, True) session = get_session_maker()() import assembl.models try: if (args.reset_extract_discussion and session.query(assembl.models.Extract).filter_by(discussion_id=-1).count()): session.execute("""UPDATE "extract" SET discussion_id = ( SELECT content.discussion_id FROM content JOIN idea_content_link on (content_id=content.id) JOIN "extract" on ("extract".id = idea_content_link.id) WHERE "extract".discussion_id=-1)""") if args.rebuild_all_tables: rebuild_all_tables(session, args.delete_missing) elif args.rebuild_all_fkeys: rebuild_all_tables_fkeys(session, args.rebuild_table, args.delete_missing) else:
# this is the Alembic Config object, which provides # access to the values within the .ini file in use. config = context.config # Interpret the config file for Python logging. # This line sets up loggers basically. fileConfig(config.config_file_name) _settings = config.file_config._sections['app:idealoom'] # Add a marker that we're in alembic, some things need not happen _settings['in_alembic'] = True set_config(_settings) pyramid_env = bootstrap(config.config_file_name) configure_zmq(pyramid_env['registry'].settings['changes_socket'], False) configure_engine(pyramid_env['registry'].settings, False) def run_migrations_online(): """Run migrations in 'online' mode. In this scenario we need to create an Engine and associate a connection with the context. """ engine = get_session_maker().bind connection = engine.connect() context.configure(connection=connection, target_metadata=get_metadata()) try: context.run_migrations(pyramid_env=pyramid_env)
config.registry.settings.get('celery_tasks.imap.broker')) _producer_connection = BrokerConnection(url) if __name__ == '__main__': if len(sys.argv) != 2: print "usage: python source_reader.py configuration.ini" config_file_name = sys.argv[-1] settings = get_appsettings(config_file_name, 'assembl') registry = getGlobalSiteManager() registry.settings = settings set_config(settings) fileConfig(config_file_name) # set the basic session maker without zope or autoflush engine = configure_engine(settings, False, autoflush=False, max_overflow=20) # @event.listens_for(engine, "checkin") def show_checkin(*args): global pool_counter pool_counter -= 1 print "checkin pool: %d in %s" % (pool_counter, currentThread()) print_stack() # @event.listens_for(engine, "checkout") def show_checkout(*args): global pool_counter pool_counter += 1 print "checkout pool: %d in %s" % (pool_counter, currentThread()) print_stack()
env = bootstrap(args.configuration) settings = get_appsettings(args.configuration, 'assembl') set_config(settings) raven_client = None try: pipeline = settings.get('pipeline:main', 'pipeline').split() if 'raven' in pipeline: raven_dsn = settings.get('filter:raven', 'dsn') from raven import Client raven_client = Client(raven_dsn) except Exception: pass try: configure_zmq(settings['changes.socket'], False) configure_model_watcher(env['registry'], 'assembl') to_engine = configure_engine(settings, True) to_session = get_session_maker() new_slug = args.new_name or (args.discussion + "_copy") if args.connection_string: from_engine = configure_engine(args.connection) from_session = sessionmaker(from_engine)() else: from_engine = to_engine from_session = to_session from assembl.models import Discussion discussion = from_session.query(Discussion).filter_by( slug=args.discussion).one() assert discussion, "No discussion named " + args.discussion permissions = [x.split('+') for x in args.permissions] for (role, permission) in permissions: assert role in SYSTEM_ROLES
from assembl.indexing.changes import configure_indexing from assembl.lib.migration import bootstrap_db_data # this is the Alembic Config object, which provides # access to the values within the .ini file in use. config = context.config # Interpret the config file for Python logging. # This line sets up loggers basically. fileConfig(config.config_file_name) _config = config.file_config._sections['app:assembl'] _config['in_migration'] = True set_config(_config) pyramid_env = bootstrap(config.config_file_name) configure_zmq(pyramid_env['registry'].settings['changes_socket'], False) configure_engine(pyramid_env['registry'].settings, False) configure_indexing() def run_migrations_online(): """Run migrations in 'online' mode. In this scenario we need to create an Engine and associate a connection with the context. """ session_maker = get_session_maker() engine = session_maker.bind connection = engine.connect() context.configure(connection=connection, target_metadata=get_metadata())
Be aware that ODBC.ini settings are distinct.""") parser.add_argument("discussion", help="original discussion slug") parser.add_argument("-p", "--permissions", action="append", default=[], help="Add a role+permission pair to the copy " "(eg system.Authenticated+admin_discussion)") args = parser.parse_args() env = bootstrap(args.configuration) logging.config.fileConfig(args.configuration) settings = get_appsettings(args.configuration, 'assembl') set_config(settings) setup_raven(settings) try: configure_zmq(settings['changes.socket'], False) configure_model_watcher(env['registry'], 'assembl') to_engine = configure_engine(settings, True) to_session = get_session_maker() init_key_for_classes(to_session) new_slug = args.new_name or (args.discussion + "_copy") if args.source_db_configuration: from_session = make_session_maker(zope_tr=True) settings = get_appsettings(args.source_db_configuration, 'assembl') from_engine = configure_engine(settings, session_maker=from_session) from_session = sessionmaker(from_engine)() else: from_engine = to_engine from_session = to_session from assembl.models import Discussion discussion = from_session.query(Discussion).filter_by( slug=args.discussion).one() assert discussion, "No discussion named " + args.discussion
def includeme(config): global _producer_connection, _exchange setup_logging(loglevel='DEBUG') url = config.registry.settings.get('celery_tasks.imap.broker') _producer_connection = BrokerConnection(url) if __name__ == '__main__': if len(sys.argv) != 2: print "usage: python source_reader.py configuration.ini" config_file_name = sys.argv[-1] settings = get_appsettings(config_file_name, 'assembl') registry = getGlobalSiteManager() registry.settings = settings set_config(settings) fileConfig(config_file_name) # set the basic session maker without zope or autoflush configure_engine(settings, False, autoflush=False) configure(registry, 'source_reader') url = settings.get('celery_tasks.imap.broker') with BrokerConnection(url) as conn: sourcedispatcher = SourceDispatcher(conn) def shutdown(*args): sourcedispatcher.shutdown() signal.signal(signal.SIGTERM, shutdown) try: sourcedispatcher.run() except KeyboardInterrupt: shutdown()
logging.config.fileConfig(args.configuration) settings = get_appsettings(args.configuration, 'assembl') set_config(settings) raven_client = None try: pipeline = settings.get('pipeline:main', 'pipeline').split() if 'raven' in pipeline: raven_dsn = settings.get('filter:raven', 'dsn') from raven import Client raven_client = Client(raven_dsn) except Exception: pass try: configure_zmq(settings['changes.socket'], False) configure_model_watcher(env['registry'], 'assembl') to_engine = configure_engine(settings, True) to_session = get_session_maker() init_key_for_classes(to_session) new_slug = args.new_name or (args.discussion + "_copy") if args.source_db_configuration: from_session = make_session_maker(zope_tr=True) settings = get_appsettings(args.source_db_configuration, 'assembl') from_engine = configure_engine(settings, session_maker=from_session) from_session = sessionmaker(from_engine)() else: from_engine = to_engine from_session = to_session from assembl.models import Discussion discussion = from_session.query(Discussion).filter_by( slug=args.discussion).one()