Why?
It's safer to rely on PDO types instead of manually escape values
When we are doing new code, sometimes we need to move existing code out of DAO instead of providing functionalities
As of today there are two different types of DAO
-
hierarchical DAO
-
regular DAO
Regular DAO conversion is easier, the file "only" needs conversion
Hierarchical DAO is trickier
-
it's better to remove the hierarchy and use interfaces instead
-
hierarchy have several issues
-
When updating a hierarchical DAO, today, the best approch is
-
work function by function and move it behind a new DAO
-
have a custom interface, the DAO will implements interface if they needed
-
abstract function must be rewritten inside every DAO
-
if dao naming function is generic and can compromise data (update/delete), it's better to have a specific name (example renaming delete into deleteForStuff (see https://gerrit.tuleap.net/c/tuleap/+/33542 for context)
Regular dao
-
[] Tracker_PermissionsDao
-
[] Tracker_Artifact_Attachment_TemporaryFileManagerDao
-
[] Tracker_Artifact_Changeset_IncomingMailDao
-
[] Tracker_Artifact_PriorityDao
-
[] Tracker_Artifact_Changeset_CommentDao
-
[] Tracker_Artifact_Changeset_ValueDao
-
[] Tracker_Artifact_ChangesetDao
-
[] Tracker_Artifact_Changeset_IncomingMailDao
-
[] Tracker_Artifact_PriorityHistoryDao
-
[] Tracker_ArtifactDao
-
[] Tracker_CannedResponseDao
-
[] Tracker_FileInfoDao
-
[] Tracker_GlobalNotificationDao
-
[⏳] Tracker_PermDao
-
[] TrackerDao
-
[] FieldDao
-
[] BurndownFieldDao
-
[] ComputedFieldDao
-
[] OpenListFieldDao
-
[] OpenListValueDao
-
[] BindDecoratorDao
-
[] BindDefaultValueDao
-
[] BindStaticDao
-
[] BindStaticValueDao
-
[] BindUgroupsValueDao
-
[] BindUsersDao
-
[] PermissionsOnArtifactFieldValueDao
-
[] PropagatePropertiesDao
-
[] HierarchyDAO
-
[] UgroupsToNotifyDao
-
[] UsersToNotifyDao
-
[] TrackerReportConfigDao
-
[] Tracker_Report_Renderer_Table_ColumnsDao
-
[] Tracker_Report_Renderer_Table_FunctionsAggregatesDao
-
[] Tracker_Report_Renderer_Table_SortDao
-
[] Tracker_Report_Renderer_TableDao
-
[] Tracker_Report_RendererDao
-
[] Tracker_ReportDao
-
[] Tracker_RuleDao
-
[] Tracker_Semantic_ContributorDao
-
[] Tracker_Semantic_DescriptionDao
-
[] Tracker_Semantic_StatusDao
-
[] Tracker_Semantic_TitleDao
-
[] SemanticTooltipDao
-
[] Workflow_TransitionDao
-
[] Transition_PostAction_CIBuildDao
-
[] Workflow_Transition_Condition_FieldNotEmpty_Dao
-
[] Tracker_Workflow_Trigger_RulesDao
Hierarchical DAO
Do not migrate