mantisbt:global_categories_requirements
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
mantisbt:global_categories_requirements [2007/07/31 11:09] – Cleanup database changes jreese | mantisbt:global_categories_requirements [2008/10/29 04:25] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 12: | Line 12: | ||
In the current Mantis system, all shared categories must either be created or copied between projects and subprojects by hand. Modifying one category means manually modifying every other project that category exists in to reflect the same change. There is also no way to handle global categories other than to copy categories from one project to every other project. Adding a new project or subproject later means more work to copy categories to it as well. | In the current Mantis system, all shared categories must either be created or copied between projects and subprojects by hand. Modifying one category means manually modifying every other project that category exists in to reflect the same change. There is also no way to handle global categories other than to copy categories from one project to every other project. Adding a new project or subproject later means more work to copy categories to it as well. | ||
+ | |||
+ | |||
===== Proposed Approach ===== | ===== Proposed Approach ===== | ||
Line 26: | Line 28: | ||
[Child] Language | [Child] Language | ||
- | Individual projects should be able to choose if they should inherit parents' | + | ==== Phase 1: Using Category ID's ==== |
+ | |||
+ | This is probably the most difficult and error-prone phase of the entire process, involving a completely new approach to storing | ||
+ | |||
+ | ==== Phase 2: Add Global Categories ==== | ||
+ | |||
+ | Building on the work from phase 1, global categories | ||
+ | |||
+ | ==== Phase 3: Add Catergory Inheritence ==== | ||
+ | |||
+ | The final main phase will be the introduction of category inheritence between projects. | ||
Line 33: | Line 45: | ||
===== Database Changes ===== | ===== Database Changes ===== | ||
- | | + | ==== Phase 1 ==== |
- | * add **id int(10)** primary key, with // | + | |
- | * **project_id** | + | This will be a multi-step process consisting of the following changes: |
+ | |||
+ | | ||
+ | * **id int(10)** primary key, with // | ||
+ | * **project_id | ||
+ | * **name varchar(100)** | ||
+ | * **status tinyint(4)** index | ||
+ | * **user_id int(10)** | ||
* modify '' | * modify '' | ||
- | * **category** change to **category_id int(10)** as foreign key | + | * add **category_id int(10)** as foreign key to '' |
+ | * run custom upgrade function that will find existing categories, and create entries in new format | ||
+ | * run custom upgrade function that will convert bugs' **category** value to **category_id** | ||
+ | * modify '' | ||
+ | * delete **category** column | ||
+ | * delete '' | ||
+ | |||
+ | ==== Phase 2 ==== | ||
+ | * modify '' | ||
* add **inherit_categories tinyint(4)** to denote project will inherit global categories | * add **inherit_categories tinyint(4)** to denote project will inherit global categories | ||
+ | |||
+ | ==== Phase 3 ==== | ||
* modify '' | * modify '' | ||
* add **inherit_categories tinyint(4)** to denote project will inherit categories from parent | * add **inherit_categories tinyint(4)** to denote project will inherit categories from parent | ||
- | |||
- | * Admin update/ | ||
- | |||
mantisbt/global_categories_requirements.1185894545.txt.gz · Last modified: 2008/10/29 04:31 (external edit)