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