Author Topic: When upgrade from 1.7.5 to 2.x I lose subtasks  (Read 2719 times)

Ruswold

  • Newbie
  • *
  • Posts: 4
    • View Profile
When upgrade from 1.7.5 to 2.x I lose subtasks
« on: September 04, 2012, 03:05:49 am »
When I upgrade from one version from 1.7.5 to 2.0.1, 2.0.8 or 2.1 come off all subtasks.
As I understand task in table og_project_tasks has one id and when I uprade to new version fengoffice the record inserts into fo_objects table and gets a new id, иге the parent_id field remains the same and losing a parent task subtask. Help me, How to solve the problem, thanks.

Ruswold

  • Newbie
  • *
  • Posts: 4
    • View Profile
When upgrade from 1.7.5 to 2.x I lose subtasks
« Reply #1 on: September 04, 2012, 09:37:10 am »
I change sql query in file /feng root/public/upgrade/templates/db_migration/2_0_asado.php
was:
-- tasks
INSERT INTO `fo_project_tasks` (`object_id`, `text`, `parent_id`, `due_date`, `start_date`, `assigned_on`, `assigned_by_id`, `time_estimate`, `completed_on`, `completed_by_id`, `started_on`, `started_by_id`, `priority`, `state`, `order`, `milestone_id`, `is_template`, `from_template_id`, `repeat_end`, `repeat_forever`, `repeat_num`, `repeat_d`, `repeat_m`, `repeat_y`, `repeat_by`, `object_subtype`, `percent_completed`, `assigned_to_contact_id`)
 SELECT (SELECT `id` FROM `fo_objects` WHERE `f1_id` = `c`.`id` AND `object_type_id` = (SELECT `ot`.`id` FROM `fo_object_types` `ot` WHERE `ot`.`name`='task')), `c`.`text`, `c`.`parent_id`, `c`.`due_date`, `c`.`start_date`, `c`.`assigned_on`,
 IF(`c`.`assigned_by_id` > 0, (SELECT o.id FROM fo_objects o WHERE o.f1_id = c.assigned_by_id AND o.object_type_id = (SELECT `ot`.`id` FROM `fo_object_types` `ot` WHERE `ot`.`name`='contact')), 0),
 `c`.`time_estimate`, `c`.`completed_on`,
 IF(`c`.`completed_by_id` > 0, (SELECT o.id FROM fo_objects o WHERE o.f1_id = c.completed_by_id AND o.object_type_id = (SELECT `ot`.`id` FROM `fo_object_types` `ot` WHERE `ot`.`name`='contact')), 0),
 `c`.`started_on`,
 IF(`c`.`started_by_id` > 0, (SELECT o.id FROM fo_objects o WHERE o.f1_id = c.started_by_id AND o.object_type_id = (SELECT `ot`.`id` FROM `fo_object_types` `ot` WHERE `ot`.`name`='contact')), 0),
 `c`.`priority`, `c`.`state`, `c`.`order`,
 (SELECT `id` FROM `fo_objects` WHERE `f1_id` = `c`.`milestone_id` AND `object_type_id` = (SELECT `ot`.`id` FROM `fo_object_types` `ot` WHERE `ot`.`name`='milestone')),
 `c`.`is_template`, `c`.`from_template_id`, `c`.`repeat_end`, `c`.`repeat_forever`, `c`.`repeat_num`, `c`.`repeat_d`, `c`.`repeat_m`, `c`.`repeat_y`, `c`.`repeat_by`, `c`.`object_subtype`, 0,
 IF (`c`.`assigned_to_user_id`> 0,
   (SELECT o.id FROM fo_objects o WHERE o.f1_id = c.assigned_to_user_id AND o.object_type_id = (SELECT `ot`.`id` FROM `fo_object_types` `ot` WHERE `ot`.`name`='contact')),
   (SELECT o.id FROM fo_objects o WHERE o.f1_id = c.assigned_to_company_id AND o.object_type_id = (SELECT `ot`.`id` FROM `fo_object_types` `ot` WHERE `ot`.`name`='company'))
 )
 FROM `og_project_tasks` `c`;

now:
INSERT INTO `fo_project_tasks` (`object_id`, `text`, `parent_id`, `due_date`, `start_date`, `assigned_on`, `assigned_by_id`, `time_estimate`, `completed_on`, `completed_by_id`, `started_on`, `started_by_id`, `priority`, `state`, `order`, `milestone_id`, `is_template`, `from_template_id`, `repeat_end`, `repeat_forever`, `repeat_num`, `repeat_d`, `repeat_m`, `repeat_y`, `repeat_by`, `object_subtype`, `percent_completed`, `assigned_to_contact_id`)
    SELECT (SELECT `id` FROM `fo_objects` WHERE `f1_id` = `c`.`id` AND `object_type_id` = (SELECT `ot`.`id` FROM `fo_object_types` `ot` WHERE `ot`.`name`='task')), `c`.`text`,
    IF(`c`.`parent_id`>0,(SELECT o.id FROM fo_objects o where o.f1_id=c.parent_id and object_type_id = (SELECT ot.id FROM fo_object_types ot WHERE ot.name='task')),0),
    `c`.`due_date`, `c`.`start_date`, `c`.`assigned_on`,
    IF(`c`.`assigned_by_id` > 0, (SELECT o.id FROM fo_objects o WHERE o.f1_id = c.assigned_by_id AND o.object_type_id = (SELECT `ot`.`id` FROM `fo_object_types` `ot` WHERE `ot`.`name`='contact')), 0),
    `c`.`time_estimate`, `c`.`completed_on`,
    IF(`c`.`completed_by_id` > 0, (SELECT o.id FROM fo_objects o WHERE o.f1_id = c.completed_by_id AND o.object_type_id = (SELECT `ot`.`id` FROM `fo_object_types` `ot` WHERE `ot`.`name`='contact')), 0),
    `c`.`started_on`,
    IF(`c`.`started_by_id` > 0, (SELECT o.id FROM fo_objects o WHERE o.f1_id = c.started_by_id AND o.object_type_id = (SELECT `ot`.`id` FROM `fo_object_types` `ot` WHERE `ot`.`name`='contact')), 0),
    `c`.`priority`, `c`.`state`, `c`.`order`,
    (SELECT `id` FROM `fo_objects` WHERE `f1_id` = `c`.`milestone_id` AND `object_type_id` = (SELECT `ot`.`id` FROM `fo_object_types` `ot` WHERE `ot`.`name`='milestone')),
    `c`.`is_template`, `c`.`from_template_id`, `c`.`repeat_end`, `c`.`repeat_forever`, `c`.`repeat_num`, `c`.`repeat_d`, `c`.`repeat_m`, `c`.`repeat_y`, `c`.`repeat_by`, `c`.`object_subtype`, 0,
    IF (`c`.`assigned_to_user_id`> 0,
    (SELECT o.id FROM fo_objects o WHERE o.f1_id = c.assigned_to_user_id AND o.object_type_id = (SELECT `ot`.`id` FROM `fo_object_types` `ot` WHERE `ot`.`name`='contact')),
    (SELECT o.id FROM fo_objects o WHERE o.f1_id = c.assigned_to_company_id AND o.object_type_id = (SELECT `ot`.`id` FROM `fo_object_types` `ot` WHERE `ot`.`name`='company'))
    )
FROM `og_project_tasks` `c` order by c.id;

This solved my problem.


conrado

  • Administrator
  • Hero Member
  • *****
  • Posts: 998
  • Conrado
    • View Profile
    • Feng Office
    • Email
Re: When upgrade from 1.7.5 to 2.x I lose subtasks
« Reply #2 on: September 05, 2012, 03:46:07 pm »
This will be officially fixed in 2.2 release. :)
Get Official Support for your Feng Office. Support the development team. Sign up for a Free Trial here.

veelineen

  • Newbie
  • *
  • Posts: 6
    • View Profile
Re: When upgrade from 1.7.5 to 2.x I lose subtasks
« Reply #3 on: February 17, 2013, 12:04:08 pm »
change:

INSERT INTO `fo_project_tasks` (`object_id`, `text`, `parent_id`, `due_date`, `start_date`, `assigned_on`, `assigned_by_id`, `time_estimate`, `completed_on`, `completed_by_id`, `started_on`, `started_by_id`, `priority`, `state`, `order`, `milestone_id`, `is_template`, `from_template_id`, `repeat_end`, `repeat_forever`, `repeat_num`, `repeat_d`, `repeat_m`, `repeat_y`, `repeat_by`, `object_subtype`, `percent_completed`, `assigned_to_contact_id`)
    SELECT (SELECT `id` FROM `fo_objects` WHERE `f1_id` = `c`.`id` AND `object_type_id` = (SELECT `ot`.`id` FROM `fo_object_types` `ot` WHERE `ot`.`name`='task')), `c`.`text`,
    IF(`c`.`parent_id`>0,(SELECT o.id FROM fo_objects o where o.f1_id=c.parent_id and object_type_id = (SELECT ot.id FROM fo_object_types ot WHERE ot.name='task')),0),
    `c`.`due_date`, `c`.`start_date`, `c`.`assigned_on`,
    IF(`c`.`assigned_by_id` > 0, (SELECT o.id FROM fo_objects o WHERE o.f1_id = c.assigned_by_id AND o.object_type_id = (SELECT `ot`.`id` FROM `fo_object_types` `ot` WHERE `ot`.`name`='contact')), 0),
    `c`.`time_estimate`, `c`.`completed_on`,
    IF(`c`.`completed_by_id` > 0, (SELECT o.id FROM fo_objects o WHERE o.f1_id = c.completed_by_id AND o.object_type_id = (SELECT `ot`.`id` FROM `fo_object_types` `ot` WHERE `ot`.`name`='contact')), 0),
    `c`.`started_on`,
    IF(`c`.`started_by_id` > 0, (SELECT o.id FROM fo_objects o WHERE o.f1_id = c.started_by_id AND o.object_type_id = (SELECT `ot`.`id` FROM `fo_object_types` `ot` WHERE `ot`.`name`='contact')), 0),
    `c`.`priority`, `c`.`state`, `c`.`order`,
    (SELECT `id` FROM `fo_objects` WHERE `f1_id` = `c`.`milestone_id` AND `object_type_id` = (SELECT `ot`.`id` FROM `fo_object_types` `ot` WHERE `ot`.`name`='milestone')),
    `c`.`is_template`, `c`.`from_template_id`, `c`.`repeat_end`, `c`.`repeat_forever`, `c`.`repeat_num`, `c`.`repeat_d`, `c`.`repeat_m`, `c`.`repeat_y`, `c`.`repeat_by`, `c`.`object_subtype`, 0,
    IF (`c`.`assigned_to_user_id`> 0,
    (SELECT o.id FROM fo_objects o WHERE o.f1_id = c.assigned_to_user_id AND o.object_type_id = (SELECT `ot`.`id` FROM `fo_object_types` `ot` WHERE `ot`.`name`='contact')),
    (SELECT o.id FROM fo_objects o WHERE o.f1_id = c.assigned_to_company_id AND o.object_type_id = (SELECT `ot`.`id` FROM `fo_object_types` `ot` WHERE `ot`.`name`='company'))
    )
FROM `og_project_tasks` `c` order by c.id;

to:

INSERT INTO `fo_project_tasks` (`object_id`, `text`, `parent_id`, `due_date`, `start_date`, `assigned_on`, `assigned_by_id`, `time_estimate`, `completed_on`, `completed_by_id`, `started_on`, `started_by_id`, `priority`, `state`, `order`, `milestone_id`, `is_template`, `from_template_id`, `repeat_end`, `repeat_forever`, `repeat_num`, `repeat_d`, `repeat_m`, `repeat_y`, `repeat_by`, `object_subtype`, `percent_completed`, `assigned_to_contact_id`)
    SELECT (SELECT `id` FROM `fo_objects` WHERE `f1_id` = `c`.`id` AND `object_type_id` = (SELECT `ot`.`id` FROM `fo_object_types` `ot` WHERE `ot`.`name`='task')), `c`.`title`,
    IF(`c`.`parent_id`>0,(SELECT o.id FROM fo_objects o where o.f1_id=c.parent_id and object_type_id = (SELECT ot.id FROM fo_object_types ot WHERE ot.name='task')),0),
    `c`.`due_date`, `c`.`start_date`, `c`.`assigned_on`,
    IF(`c`.`assigned_by_id` > 0, (SELECT o.id FROM fo_objects o WHERE o.f1_id = c.assigned_by_id AND o.object_type_id = (SELECT `ot`.`id` FROM `fo_object_types` `ot` WHERE `ot`.`name`='contact')), 0),
    `c`.`time_estimate`, `c`.`completed_on`,
    IF(`c`.`completed_by_id` > 0, (SELECT o.id FROM fo_objects o WHERE o.f1_id = c.completed_by_id AND o.object_type_id = (SELECT `ot`.`id` FROM `fo_object_types` `ot` WHERE `ot`.`name`='contact')), 0),
    `c`.`started_on`,
    IF(`c`.`started_by_id` > 0, (SELECT o.id FROM fo_objects o WHERE o.f1_id = c.started_by_id AND o.object_type_id = (SELECT `ot`.`id` FROM `fo_object_types` `ot` WHERE `ot`.`name`='contact')), 0),
    `c`.`priority`, `c`.`state`, `c`.`order`,
    (SELECT `id` FROM `fo_objects` WHERE `f1_id` = `c`.`milestone_id` AND `object_type_id` = (SELECT `ot`.`id` FROM `fo_object_types` `ot` WHERE `ot`.`name`='milestone')),
    `c`.`is_template`, `c`.`from_template_id`, `c`.`repeat_end`, `c`.`repeat_forever`, `c`.`repeat_num`, `c`.`repeat_d`, `c`.`repeat_m`, `c`.`repeat_y`, `c`.`repeat_by`, `c`.`object_subtype`, 0,
    IF (`c`.`assigned_to_user_id`> 0,
    (SELECT o.id FROM fo_objects o WHERE o.f1_id = c.assigned_to_user_id AND o.object_type_id = (SELECT `ot`.`id` FROM `fo_object_types` `ot` WHERE `ot`.`name`='contact')),
    (SELECT o.id FROM fo_objects o WHERE o.f1_id = c.assigned_to_company_id AND o.object_type_id = (SELECT `ot`.`id` FROM `fo_object_types` `ot` WHERE `ot`.`name`='company'))
    )
FROM `og_project_tasks` `c` order by c.id;

otherwise the title of the task won't migrate.