#2283 [Housekeeping] Remove ID from base model in flyteadmin
Issue created by
katrogan
Describe the issue
The
ID field in the flyteadmin BaseModel embedded in every db model is problematic. Autoincrement presents a performance penalty, but furthermore, after
#2282 the id
won't even be strictly necessary.
What we should do is completely eliminate the ID field (and probably re-examine the necessity of DeletedAt too)
N.B.
In the executions model,
LaunchPlanID, WorkflowID, and TaskID all unofficially refer to this ID field used for
joins in list calls. The right solution here might be to use composite foreign keys and introduce a one-time (admittedly, expensive) migration to move existing rows over.
The
SourceExecutionID and
ParentNodeExecutionID are also unofficial foreign reference keys unused outside of tests.
What if we do not do this?
More confusing data model, performance penalties
Related component(s)
flyteadmin
Are you sure this issue hasn't been raised already?
☑︎ Yes
Have you read the Code of Conduct?
☑︎ Yes
flyteorg/flyte