def run_schema(self): """ Runs the schema initialization and returns if it was successfull """ schema = [] if self._config.engine == "sqlite": schema = read_sql_statements('sql', 'schema', 'sqlite.sql') elif self._config.engine == "mysql": schema = read_sql_statements('sql', 'schema', 'mysql.sql') with self._engine.begin() as conn: for cmd in schema: conn.execute(cmd) log.info("Schema has been initialized")
def __init__(self, engine: Engine): self._engine = engine self._replace_documents = read_sql_statements("sql", "crawler", "update_documents.sql") self._replace_profiles = read_sql_statements("sql", "crawler", "update_profiles.sql") self._update_cache_documents = read_sql_statements("sql", "crawler", "update_cache_documents.sql") self._update_cache_fields = read_sql_statements("sql", "crawler", "update_cache_fields.sql") self._update_cache_profiles = read_sql_statements("sql", "crawler", "update_cache_profiles.sql") self._link_fields_to_documents = read_sql_statements("sql", "crawler", "link_documents_to_fields.sql") self._link_profiles_to_documents = read_sql_statements("sql", "crawler", "link_profiles_to_documents.sql") self._post_update = read_sql_statements("sql", "crawler", "post_update.sql") self._log_update = read_sql_statements("sql", "crawler", "log_update.sql")
def __init__(self, engine: Engine): self._engine = engine self._query_fields =\ read_sql_statements('sql', 'api', 'query_fields.sql') self._query_profiles_slim =\ read_sql_statements('sql', 'api', 'query_profiles_slim.sql') self._query_all_documents =\ read_sql_statements('sql', 'api', 'query_all_documents.sql') self._query_documents_by_profile_ids =\ read_sql_statements('sql', 'api', 'query_documents_by_profile_ids.sql') self._query_documents_by_field_ids =\ read_sql_statements('sql', 'api', 'query_documents_by_field_ids.sql') self._query_documents_by_profile_ids_and_field_ids =\ read_sql_statements('sql', 'api', 'query_documents_by_profile_ids_and_field_ids.sql') self._query_profiles_by_profile_ids_or_field_ids =\ read_sql_statements('sql', 'api', 'query_profiles_by_profile_ids_or_field_ids.sql') self._query_entities =\ read_sql_statements('sql', 'api', 'query_entities.sql') self._query_last_update=\ read_sql_statements('sql', 'api', 'query_last_update.sql') self._query_profile=\ read_sql_statements('sql', 'api', 'query_profile.sql')
def drop_all(self): drops = read_sql_statements('sql', 'schema', 'drop_all.sql') foreign_key_off = "" foreign_key_on = "" if self._config.engine == "mysql": foreign_key_off = "SET FOREIGN_KEY_CHECKS = 0" foreign_key_on = "SET FOREIGN_KEY_CHECKS = 1" elif self._config.engine == "sqlite": foreign_key_off = "PRAGMA foreign_keys = OFF" foreign_key_on = "PRAGMA foreign_keys = ON" with self._engine.begin() as conn: log.info(foreign_key_off) conn.execute(foreign_key_off) for drop in drops: log.info(drop) conn.execute(drop) log.info(foreign_key_on) conn.execute(foreign_key_on) log.info("Database has been dropped")