changeset 328:91a6a6c540d4

Static fields definition won't be interesting in the long run
author Sylvain Beucler <beuc@beuc.net>
date Sun, 22 Aug 2010 08:41:38 +0200
parents cdce64340e6c
children f4652d26e557
files doc/savane3_trackers.txt migrate_old_savane.sql
diffstat 2 files changed, 43 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/doc/savane3_trackers.txt
+++ b/doc/savane3_trackers.txt
@@ -17,6 +17,47 @@
 In addition similar structures and values (common to
 bugs/patch/support/task) are only defined once.
 
+EDIT: it happens that the Savannah database has some inconsistency and
+differs in the definition of 4 fields for the bugs tracker:
+
+mysql> SELECT bug_field_id, group_id, use_it, show_on_add, show_on_add_members, place, id FROM temp_bugs_field_usage WHERE id IN (SELECT id FROM (SELECT B.id FROM temp_bugs_field_usage A, temp_bugs_field_usage B WHERE A.bug_field_id = B.bug_field_id AND A.group_id = B.group_id AND (A.use_it != B.use_it OR A.show_on_add != B.show_on_add OR A.show_on_add_members != B.show_on_add_members OR A.place != B.place)) AS temp) AND group_id=100 ORDER BY bug_field_id;
++--------------+----------+--------+-------------+---------------------+-------+-----+
+| bug_field_id | group_id | use_it | show_on_add | show_on_add_members | place | id  |
++--------------+----------+--------+-------------+---------------------+-------+-----+
+|          102 |      100 |      1 |           1 |                   1 |   200 |   7 |
+|          102 |      100 |      1 |           0 |                   1 |   200 |  73 |
+|          107 |      100 |      0 |           1 |                   1 |   300 |  12 |
+|          107 |      100 |      1 |           1 |                   1 |   300 |  78 |
+|          211 |      100 |      1 |           0 |                   1 |   200 |  25 |
+|          211 |      100 |      0 |           0 |                   0 |   250 |  91 |
+|          216 |      100 |      1 |           2 |                   0 |   560 |  30 |
+|          216 |      100 |      0 |           0 |                   0 |   560 | 160 |
++--------------+----------+--------+-------------+---------------------+-------+-----+
+8 rows in set (0.11 sec)
+
+mysql> SELECT bug_field_id, field_name, required FROM savane_old.bugs_field WHERE bug_field_id IN (102, 107, 211, 216);
++--------------+------------------+----------+
+| bug_field_id | field_name       | required |
++--------------+------------------+----------+
+|          102 | severity         |        0 |
+|          107 | bug_group_id     |        0 |
+|          211 | priority         |        1 |
+|          216 | originator_email |        0 |
++--------------+------------------+----------+
+4 rows in set (0.00 sec)
+
+In addition, if we want to convert trackers from other forges, we may
+need the extra flexibility of defining site-wide default for a given
+tracker.
+
+Consequently we'll probably have to revert to in-base definition of
+tracker defaults.
+
+However, merging the fields definition and their default values was
+beneficial as it allowed reworking the data structure and removing
+duplicate columns (display/custom_display, etc.).
+
+- - - - - - -
 
 Here is a description of the Savane_3_ data structure, used as reference
 to build this new implementation:
--- a/migrate_old_savane.sql
+++ b/migrate_old_savane.sql
@@ -536,7 +536,7 @@
 UPDATE tracker_item SET assigned_to_id=NULL WHERE assigned_to_id=100;
 UPDATE tracker_item SET submitted_by_id=NULL WHERE submitted_by_id=100;
 
--- Get rid of duplicates (old mysql/php/savane bug?)
+-- Get rid of field_usage duplicates (old mysql/php/savane bug?)
 -- It only affected group_id=100, maybe the installation was done
 -- twice or something.
 -- Give priority to the last one.
@@ -572,10 +572,9 @@
 -- Specify "default" differently
 -- UPDATE tracker_fieldoverlay SET group_id=NULL WHERE group_id=100;
 
--- Get rid of duplicates (old mysql/php/savane bug?)
+-- Get rid of field_value duplicates (old mysql/php/savane bug?)
 -- Apparently this affects 'None' values.
 -- Give priority to the last one (arbitrarily).
--- Need to create a real table - a temporary one has issues with being "reopened" in joins
 DELETE FROM savane_old.bugs_field_value
   WHERE bug_fv_id IN (
     SELECT bug_fv_id FROM (