def db_create(session, desc): appdata = load_appdata() t = models.db_forge_obj(session, models.Tenant, desc) # required to generate/retrive the id session.flush() db_update_defaults(session) models.config.system_cfg_init(session, tid=t.id) models.config.add_new_lang(session, t.id, u'en', appdata) file_descs = [ (u'logo', 'data/logo.png'), (u'favicon', 'data/favicon.ico') ] for file_desc in file_descs: with open(os.path.join(Settings.client_path, file_desc[1]), 'r') as f: data = base64.b64encode(f.read()) file.db_add_file(session, t.id, file_desc[0], u'', data) db_refresh_memory_variables(session, [t.id]) return t
def init_db(session): """ Transaction for initializing the application database :param session: An ORM session """ from globaleaks.handlers.admin import tenant tenant.db_create(session, {'mode': 'default', 'label': 'root'}) db_update_defaults(session)
def init_db(store): appdata = load_appdata() db_create_tables(store) db_update_defaults(store) log.debug("Performing database initialization...") models.config.system_cfg_init(store) models.l10n.EnabledLanguage.add_all_supported_langs(store, appdata) file_descs = [(u'logo', 'data/logo.png'), (u'favicon', 'data/favicon.ico')] for file_desc in file_descs: with open(os.path.join(Settings.client_path, file_desc[1]), 'r') as f: files.db_add_file(store, f.read(), file_desc[0])
def perform_data_update(db_file): session = get_session(make_db_uri(db_file), foreign_keys=False) enabled_languages = [ lang.name for lang in session.query(models.EnabledLanguage) ] removed_languages = list( set(enabled_languages) - set(LANGUAGES_SUPPORTED_CODES)) if removed_languages: removed_languages.sort() removed_languages = ', '.join(removed_languages) raise Exception( "FATAL: cannot complete the upgrade because the support for some of the enabled languages is currently incomplete (%s)\n" "Read about how to handle this condition at: https://github.com/globaleaks/GlobaLeaks/wiki/Upgrade-Guide#lang-drop" % removed_languages) try: cfg = ConfigFactory(session, 1) stored_ver = cfg.get_val(u'version') if stored_ver != __version__: # The below commands can change the current store based on the what is # currently stored in the DB. for tid in [t[0] for t in session.query(models.Tenant.id)]: appdata = load_appdata() config.update_defaults(session, tid, appdata) db_update_defaults(session) db_fix(session) cfg.set_val(u'version', __version__) cfg.set_val(u'latest_version', __version__) cfg.set_val(u'version_db', DATABASE_VERSION) session.commit() except: session.rollback() raise finally: session.close()
def db_perform_data_update(store): prv = PrivateFactory(store) stored_ver = prv.get_val(u'version') t = (stored_ver, __version__) if stored_ver != __version__: prv.set_val(u'version', __version__) # The below commands can change the current store based on the what is # currently stored in the DB. appdata = load_appdata() db_update_defaults(store) l10n.update_defaults(store, appdata) config.update_defaults(store) ok = config.is_cfg_valid(store) if not ok: m = 'Error: the system is not stable, update failed from %s to %s' % t raise Exception(m)
def perform_data_update(db_file): session = get_session(make_db_uri(db_file), foreign_keys=False) enabled_languages = [lang.name for lang in session.query(models.EnabledLanguage)] removed_languages = list(set(enabled_languages) - set(LANGUAGES_SUPPORTED_CODES)) if removed_languages: removed_languages.sort() removed_languages = ', '.join(removed_languages) raise Exception("FATAL: cannot complete the upgrade because the support for some of the enabled languages is currently incomplete (%s)\n" "Read about how to handle this condition at: https://github.com/globaleaks/GlobaLeaks/wiki/Upgrade-Guide#lang-drop" % removed_languages) try: cfg = ConfigFactory(session, 1) stored_ver = cfg.get_val(u'version') if stored_ver != __version__: # The below commands can change the current store based on the what is # currently stored in the DB. for tid in [t[0] for t in session.query(models.Tenant.id)]: appdata = load_appdata() config.update_defaults(session, tid, appdata) db_update_defaults(session) db_fix(session) cfg.set_val(u'version', __version__) cfg.set_val(u'latest_version', __version__) cfg.set_val(u'version_db', DATABASE_VERSION) session.commit() except: session.rollback() raise finally: session.close()
def perform_data_update(db_file): engine = get_engine('sqlite+pysqlite:////' + db_file, foreign_keys=False) session = sessionmaker(bind=engine)() enabled_languages = [lang.name for lang in session.query(models.EnabledLanguage)] removed_languages = list(set(enabled_languages) - set(LANGUAGES_SUPPORTED_CODES)) if removed_languages: removed_languages.sort() removed_languages = ', '.join(removed_languages) raise Exception("FATAL: cannot complete the upgrade because the support for some of the enabled languages is currently incomplete (%s)\n" "Read about how to handle this condition at: https://github.com/globaleaks/GlobaLeaks/wiki/Upgrade-Guide#lang-drop" % removed_languages) try: prv = ConfigFactory(session, 1, 'node') stored_ver = prv.get_val(u'version') if stored_ver != __version__: prv.set_val(u'version', __version__) # The below commands can change the current store based on the what is # currently stored in the DB. for tid in [t[0] for t in session.query(models.Tenant.id)]: appdata = load_appdata() config.update_defaults(session, tid) l10n.update_defaults(session, tid, appdata) db_update_defaults(session) db_fix_fields_attrs(session) session.commit() except: session.rollback() raise finally: session.close()