tirkarthi commented on code in PR #31352:
URL: https://github.com/apache/airflow/pull/31352#discussion_r1197813620
##########
airflow/models/taskinstance.py:
##########
@@ -2821,15 +2821,16 @@ def tg2(inp):
def clear_db_references(self, session):
"""
- Clear DB references to XCom, TaskFail and RenderedTaskInstanceFields.
+ Clear DB references to XCom, TaskFail, TaskInstanceNote,
+ TaskReschedule and RenderedTaskInstanceFields.
Review Comment:
A rough attempt in Python. This needs all models to be imported so that they
are registered.
```python
import pprint
import time
from airflow.models.taskinstance import *
from airflow.models.dag import *
from airflow.models.trigger import *
from airflow.www.fab_security.sqla.models import *
def get_references(model):
references = {}
for table in model.__table__.metadata.tables.values():
foreign_key_constraints = table.foreign_key_constraints
for constraint in foreign_key_constraints:
refers = all(
element.references(model.__table__) for element in
constraint.elements
)
if refers:
references[table.name] = {
"columns": [element.column.name for element in
constraint.elements],
"constraint": constraint.name,
}
return references
start = time.time()
pprint.pp(get_references(TaskInstance))
duration = time.time() - start
print(f"Took {duration} seconds")
```
```
time python /tmp/foo.py
{'task_fail': {'columns': ['dag_id', 'task_id', 'run_id', 'map_index'],
'constraint': 'task_fail_ti_fkey'},
'task_map': {'columns': ['dag_id', 'task_id', 'run_id', 'map_index'],
'constraint': 'task_map_task_instance_fkey'},
'task_reschedule': {'columns': ['dag_id', 'task_id', 'run_id', 'map_index'],
'constraint': 'task_reschedule_ti_fkey'},
'xcom': {'columns': ['dag_id', 'task_id', 'run_id', 'map_index'],
'constraint': 'xcom_task_instance_fkey'},
'task_instance_note': {'columns': ['dag_id', 'task_id', 'run_id',
'map_index'],
'constraint': 'task_instance_note_ti_fkey'}}
Took 0.001352071762084961 seconds
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]