mirror of
https://github.com/apache/superset.git
synced 2024-09-06 05:47:43 -04:00
fix: make dataset update methods static instead of global (#16044)
This commit is contained in:
parent
7b15b7690d
commit
7c059cda39
@ -1690,25 +1690,25 @@ class DruidDatasource(Model, BaseDatasource):
|
|||||||
latest_metadata = self.latest_metadata() or {}
|
latest_metadata = self.latest_metadata() or {}
|
||||||
return [{"name": k, "type": v.get("type")} for k, v in latest_metadata.items()]
|
return [{"name": k, "type": v.get("type")} for k, v in latest_metadata.items()]
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def update_datasource(
|
||||||
|
_mapper: Mapper, _connection: Connection, obj: Union[DruidColumn, DruidMetric]
|
||||||
|
) -> None:
|
||||||
|
"""
|
||||||
|
Forces an update to the datasource's changed_on value when a metric or column on
|
||||||
|
the datasource is updated. This busts the cache key for all charts that use the
|
||||||
|
datasource.
|
||||||
|
|
||||||
def update_datasource(
|
:param _mapper: Unused.
|
||||||
_mapper: Mapper, _connection: Connection, obj: Union[DruidColumn, DruidMetric]
|
:param _connection: Unused.
|
||||||
) -> None:
|
:param obj: The metric or column that was updated.
|
||||||
"""
|
"""
|
||||||
Forces an update to the datasource's changed_on value when a metric or column on
|
db.session.execute(
|
||||||
the datasource is updated. This busts the cache key for all charts that use the
|
update(DruidDatasource).where(DruidDatasource.id == obj.datasource.id)
|
||||||
datasource.
|
)
|
||||||
|
|
||||||
:param _mapper: Unused.
|
|
||||||
:param _connection: Unused.
|
|
||||||
:param obj: The metric or column that was updated.
|
|
||||||
"""
|
|
||||||
db.session.execute(
|
|
||||||
update(DruidDatasource).where(DruidDatasource.id == obj.datasource.id)
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
sa.event.listen(DruidDatasource, "after_insert", security_manager.set_perm)
|
sa.event.listen(DruidDatasource, "after_insert", security_manager.set_perm)
|
||||||
sa.event.listen(DruidDatasource, "after_update", security_manager.set_perm)
|
sa.event.listen(DruidDatasource, "after_update", security_manager.set_perm)
|
||||||
sa.event.listen(DruidMetric, "after_update", update_datasource)
|
sa.event.listen(DruidMetric, "after_update", DruidDatasource.update_datasource)
|
||||||
sa.event.listen(DruidColumn, "after_update", update_datasource)
|
sa.event.listen(DruidColumn, "after_update", DruidDatasource.update_datasource)
|
||||||
|
@ -1653,26 +1653,26 @@ class SqlaTable( # pylint: disable=too-many-public-methods,too-many-instance-at
|
|||||||
):
|
):
|
||||||
raise Exception(get_dataset_exist_error_msg(target.full_name))
|
raise Exception(get_dataset_exist_error_msg(target.full_name))
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def update_table(
|
||||||
|
_mapper: Mapper, _connection: Connection, obj: Union[SqlMetric, TableColumn]
|
||||||
|
) -> None:
|
||||||
|
"""
|
||||||
|
Forces an update to the table's changed_on value when a metric or column on the
|
||||||
|
table is updated. This busts the cache key for all charts that use the table.
|
||||||
|
|
||||||
def update_table(
|
:param _mapper: Unused.
|
||||||
_mapper: Mapper, _connection: Connection, obj: Union[SqlMetric, TableColumn]
|
:param _connection: Unused.
|
||||||
) -> None:
|
:param obj: The metric or column that was updated.
|
||||||
"""
|
"""
|
||||||
Forces an update to the table's changed_on value when a metric or column on the
|
db.session.execute(update(SqlaTable).where(SqlaTable.id == obj.table.id))
|
||||||
table is updated. This busts the cache key for all charts that use the table.
|
|
||||||
|
|
||||||
:param _mapper: Unused.
|
|
||||||
:param _connection: Unused.
|
|
||||||
:param obj: The metric or column that was updated.
|
|
||||||
"""
|
|
||||||
db.session.execute(update(SqlaTable).where(SqlaTable.id == obj.table.id))
|
|
||||||
|
|
||||||
|
|
||||||
sa.event.listen(SqlaTable, "after_insert", security_manager.set_perm)
|
sa.event.listen(SqlaTable, "after_insert", security_manager.set_perm)
|
||||||
sa.event.listen(SqlaTable, "after_update", security_manager.set_perm)
|
sa.event.listen(SqlaTable, "after_update", security_manager.set_perm)
|
||||||
sa.event.listen(SqlaTable, "before_update", SqlaTable.before_update)
|
sa.event.listen(SqlaTable, "before_update", SqlaTable.before_update)
|
||||||
sa.event.listen(SqlMetric, "after_update", update_table)
|
sa.event.listen(SqlMetric, "after_update", SqlaTable.update_table)
|
||||||
sa.event.listen(TableColumn, "after_update", update_table)
|
sa.event.listen(TableColumn, "after_update", SqlaTable.update_table)
|
||||||
|
|
||||||
RLSFilterRoles = Table(
|
RLSFilterRoles = Table(
|
||||||
"rls_filter_roles",
|
"rls_filter_roles",
|
||||||
|
Loading…
Reference in New Issue
Block a user