def _run_custom_sql_script(command, day=None): db_alias = get_icds_ucr_citus_db_alias() if not db_alias: return with connections[db_alias].cursor() as cursor: cursor.execute(command, [day])
def drop_temp_tables(self, alias): data = { 'prev_table': get_prev_agg_tablename(alias), 'prev_local': f"{alias}_prev_local", } with connections[get_icds_ucr_citus_db_alias()].cursor() as cursor: cursor.execute(self.DROP_QUERY.format(**data))
def allow_migrate(db, app_label): """ Return ``True`` if a app's migrations should be applied to the specified database otherwise return ``False``. Note: returning ``None`` is tantamount to returning ``True`` :return: Must return a boolean value, not None. """ if app_label == ICDS_REPORTS_APP: db_aliases = [get_icds_ucr_db_alias(), get_icds_ucr_citus_db_alias()] return db in db_aliases elif app_label == AAA_APP: db_alias = get_aaa_db_alias() return bool(db_alias and db_alias == db) elif app_label == SYNCLOGS_APP: return db == settings.SYNCLOGS_SQL_DB_ALIAS elif app_label == WAREHOUSE_APP: return db == settings.WAREHOUSE_DATABASE_ALIAS if not settings.USE_PARTITIONED_DATABASE: return app_label != PROXY_APP and db in ('default', None) if app_label == PROXY_APP: return db == partition_config.get_proxy_db() elif app_label == BLOB_DB_APP and db == 'default': return True elif app_label in (FORM_PROCESSOR_APP, SCHEDULING_PARTITIONED_APP, BLOB_DB_APP): return (db == partition_config.get_proxy_db() or db in partition_config.get_form_processing_dbs()) elif app_label == SQL_ACCESSORS_APP: return db in partition_config.get_form_processing_dbs() else: return db == partition_config.get_main_db()
def _get_rows(self, query_master=False): if query_master: objects = DishaIndicatorView.objects.using( get_icds_ucr_citus_db_alias()) else: objects = DishaIndicatorView.objects return objects.filter(month=self.month, state_name__iexact=self.state_name).values_list( *self._get_columns())
def create_temp_tables(self, table, day): data = { 'prev_table': get_prev_agg_tablename(table), 'prev_local': f"{table}_prev_local", 'prev_month': day, 'current_table': get_table_name(DASHBOARD_DOMAIN, table), 'alias': table } with connections[get_icds_ucr_citus_db_alias()].cursor() as cursor: cursor.execute(self.CREATE_QUERY.format(**data))
def _get_ucr_insertion_dates(domain, table_id, doc_ids): table_name = get_table_name(domain, table_id) with connections[get_icds_ucr_citus_db_alias()].cursor() as cursor: query = f''' SELECT doc_id, inserted_at FROM "{table_name}" WHERE doc_id = ANY(%(doc_ids)s); ''' cursor.execute(query, {'doc_ids': doc_ids}) return dict(cursor.fetchall())
def create_temp_tables(self, table, day): alias, table, ucr_alias, id_column_name = table data = { 'prev_table': get_prev_agg_tablename(alias), 'prev_local': f"{alias}_prev_local", 'prev_month': day, 'current_table': table, 'alias': alias, 'ucr_prev_local': f"{ucr_alias}_prev_local", 'id_column': id_column_name } with connections[get_icds_ucr_citus_db_alias()].cursor() as cursor: cursor.execute(self.CREATE_QUERY.format(**data))
def create_temp_tables(self, table, day): next_month_start = day + relativedelta(months=1) six_months_ago = day - relativedelta(months=6) alias, table = table data = { 'prev_table': get_prev_agg_tablename(alias), 'prev_local': f"{alias}_prev_local", 'prev_month': day, 'current_table': table, 'alias': alias, 'six_months_ago': six_months_ago, 'next_month_start': next_month_start } with connections[get_icds_ucr_citus_db_alias()].cursor() as cursor: cursor.execute(self.CREATE_QUERY.format(**data))
def allow_migrate(db, app_label, model_name=None): """ Return ``True`` if a app's migrations should be applied to the specified database otherwise return ``False``. Note: returning ``None`` is tantamount to returning ``True`` :return: Must return a boolean value, not None. """ if db and not settings.DATABASES[db].get('MIGRATE', True): return False if app_label == ICDS_REPORTS_APP: db_alias = get_icds_ucr_citus_db_alias() return bool(db_alias and db_alias == db) elif app_label == AAA_APP: db_alias = get_aaa_db_alias() return bool(db_alias and db_alias == db) elif app_label == SYNCLOGS_APP: return db == settings.SYNCLOGS_SQL_DB_ALIAS if not settings.USE_PARTITIONED_DATABASE: return app_label not in (PROXY_APP, PROXY_STANDBY_APP) and db in ( DEFAULT_DB_ALIAS, None) if app_label == PROXY_APP: return (db == plproxy_config.proxy_db or bool( plproxy_standby_config and db == plproxy_standby_config.proxy_db)) if app_label == PROXY_STANDBY_APP: return bool(plproxy_standby_config and db == plproxy_standby_config.proxy_db) elif app_label == BLOB_DB_APP and db == DEFAULT_DB_ALIAS: return True elif app_label == BLOB_DB_APP and model_name == 'blobexpiration': return False elif app_label in (FORM_PROCESSOR_APP, SCHEDULING_PARTITIONED_APP, BLOB_DB_APP): return (db == plproxy_config.proxy_db or db in plproxy_config.form_processing_dbs or bool(plproxy_standby_config and db == plproxy_standby_config.proxy_db)) elif app_label == SQL_ACCESSORS_APP: return db in plproxy_config.form_processing_dbs else: return db in (DEFAULT_DB_ALIAS, None)
def execute_query(self, query): db_alias = get_icds_ucr_citus_db_alias() with connections[db_alias].cursor() as cursor: cursor.execute(query) return cursor.fetchall()[0]