2011년 9월 28일 수요일

redmine project 식별자(identifier) 변경


보통은 식별자를 Admin모드에서 바꿀 수 없다.
하지만 누구나 실수는 하는 법.
mysql 을 뒤져보니 간단하게 바꿀 수 있더라.

$ dotcloud ssh redmine.db
$ mysql -uroot -p<암호>
mysql> use redmine;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+-------------------------------------+
| Tables_in_redmine                   |
+-------------------------------------+
| attachments                         |
| auth_sources                        |
| boards                              |
| changes                             |
| changesets                          |
| changesets_issues                   |
| comments                            |
| custom_fields                       |
| custom_fields_projects              |
| custom_fields_trackers              |
| custom_values                       |
| documents                           |
| enabled_modules                     |
| enumerations                        |
| groups_users                        |
| issue_categories                    |
| issue_relations                     |
| issue_statuses                      |
| issues                              |
| journal_details                     |
| journals                            |
| member_roles                        |
| members                             |
| messages                            |
| news                                |
| open_id_authentication_associations |
| open_id_authentication_nonces       |
| projects                            |
| projects_trackers                   |
| queries                             |
| repositories                        |
| roles                               |
| schema_migrations                   |
| settings                            |
| time_entries                        |
| tokens                              |
| trackers                            |
| user_preferences                    |
| users                               |
| versions                            |
| watchers                            |
| wiki_content_versions               |
| wiki_contents                       |
| wiki_pages                          |
| wiki_redirects                      |
| wikis                               |
| workflows                           |
+-------------------------------------+
47 rows in set (0.00 sec)

슬쩍보니까 projects 라는 테이블이 있다.

mysql> desc projects;
+-------------+--------------+------+-----+---------+----------------+
| Field       | Type         | Null | Key | Default | Extra          |
+-------------+--------------+------+-----+---------+----------------+
| id          | int(11)      | NO   | PRI | NULL    | auto_increment |
| name        | varchar(255) | NO   |     |         |                |
| description | text         | YES  |     | NULL    |                |
| homepage    | varchar(255) | YES  |     |         |                |
| is_public   | tinyint(1)   | NO   |     | 1       |                |
| parent_id   | int(11)      | YES  |     | NULL    |                |
| created_on  | datetime     | YES  |     | NULL    |                |
| updated_on  | datetime     | YES  |     | NULL    |                |
| identifier  | varchar(255) | YES  |     | NULL    |                |
| status      | int(11)      | NO   |     | 1       |                |
| lft         | int(11)      | YES  | MUL | NULL    |                |
| rgt         | int(11)      | YES  | MUL | NULL    |                |
+-------------+--------------+------+-----+---------+----------------+

음 이놈맞네. identifier 를 바꿔주자.

mysql> update projects set identifier='<변경할ID>' where identifier ='<이전ID>';
Query OK, 1 row affected (0.02 sec)
Rows matched: 1  Changed: 1  Warnings: 0

영향도가 있을까봐 걱정했는데 현재 버전(redmine 1.2.1)에선 별 영향없단다.
그래도 처음에 긴장하고 identifier 는 신중하게 잘 짓자.