본문 바로가기

Engineering/__01. Issue Tracking

[Mantis] 모든 이슈 감시하기

이슈리스트를 전체 선택해서 감시하기를 추가하는 기능이 있으면 좋겠지만, 아쉽게도 이동, 복사 같은 것은 있어도 감시하기는 찾을 수 없었다.

좀 무식한 방법이지만 DB로 가능하다.

1. 감시할 계정에 대한 user_id 를 mantis_user_table 에서 찾는다.

    여기서는 test001 계정이고 이의 user_id 가 2 라고 가정하자.


2. PROCEDURE를 만든다.

    mysql> delimiter $$

    mysql> CREATE  myFunction3()

    ->   BEGIN

    ->          DECLARE i INT DEFAULT 1;

    ->          WHILE (i<=20000) DO

    ->            INSERT INTO mantis_bug_monitor_table VALUES(2,i);

    ->            SET i=i+1;

    ->          END WHILE;

    ->           select * from mantis_bug_monitor_table;

    -> END$$;

Query OK, 0 rows affected (0.00 sec)

    -> delimiter;


  Issue Number 를 미리 20,000 정도까지 감시할 것으로 지정해 둔다. 여기서 1~20000은 이슈 ID 번호이다.


3. mantis_bug_monitor_table 을 쿼리하면 다음과 같이 이미 지정된 것이 있다.

mysql> select * from mantis_bug_monitor_table;

+---------+--------+

| user_id | bug_id |

+---------+--------+

|       2 |     21 |

|       2 |    283 |

|       2 |    993 |

|       2 |    997 |

|       2 |   1134 |

|       2 |   1141 |

|       2 |   1225 |

|       2 |   1236 |

|       2 |   1291 |


4. 이미 있는 것은 insert 중에 error 가 나므로 미리 삭제한다.

mysql> delete from mantis_bug_monitor_table where user_id = 2;                     

Query OK, 222 rows affected (0.01 sec)


5. 만들어 놓은 PROCEDURE 를 실행한다.

mysql> call mantis.myFunction3();                                      

+---------+--------+

| user_id | bug_id |

+---------+--------+

|       2 |      1 |

|       2 |      2 |

|       2 |      3 |

|       2 |      4 |

|       2 |      5 |

.......

|       2 |  19997 |

|       2 |  19998 |

|       2 |  19999 |

|       2 |  20000 |

|       3 |   5459 |

|       6 |     13 |

...

+---------+--------+

21031 rows in set (1.43 sec)


Query OK, 0 rows affected (3.33 sec)


20000까지 생성된 것을 확인할 수 있다. 이제 이슈번호 1~20000 은 자동으로 user_id=2 인 test001 계정에서 감시하고 있는 것이다.


참고) PROCEDURE 해 놓은 것은 계속 사용할 수 있다.

 show PROCEDURE STATUS;   (생성되어 있는 PROCEDURE 리스트 보기)