mysql - 如何将版本从 bugzilla 迁移到 redmine 中新的自定义 'source version' 字段(我需要什么 SQL 语法)?

标签 mysql migration redmine bugzilla

我正在将 bugzilla 安装迁移到 redmine。

在 bugzilla 中,错误总是针对导致问题出现的软件版本进行记录。

由于 redmine 支持路线图,我想做一些事情来迁移。我要做的第一部分是将所有当前版本设置移至新的自定义“源版本”字段。

我尝试创建一个名为“源版本”的新自定义字段并手动更改一些错误报告以使用该字段。一些有限的测试表明,为该字段指定的每个值都会在 custom_values 表中获得一个新条目。下面显示了三个错误,其中两个具有相同的自定义版本值 1.2060:

--------------
SELECT * FROM custom_values WHERE custom_field_id=4
--------------

+------+-----------------+---------------+-----------------+--------+
| id   | customized_type | customized_id | custom_field_id | value  |
+------+-----------------+---------------+-----------------+--------+
| 4821 | Issue           |           765 |               4 | 1.1098 |
| 4822 | Issue           |           802 |               4 | 1.2060 |
| 4823 | Issue           |           801 |               4 | 1.2060 |
+------+-----------------+---------------+-----------------+--------+

...其中 custom_field_id 与我添加的新“源版本”字段相关。

所以我认为要填充表格,我需要为我需要从当前版本复制的每个问题创建一个新条目。

如果有帮助,版本表具有以下结构:

--------------
SHOW COLUMNS FROM versions
--------------

+-----------------+--------------+------+-----+---------+----------------+
| Field           | Type         | Null | Key | Default | Extra          |
+-----------------+--------------+------+-----+---------+----------------+
| id              | int(11)      | NO   | PRI | NULL    | auto_increment |
| project_id      | int(11)      | NO   | MUL | 0       |                |
| name            | varchar(255) | NO   |     |         |                |
| description     | varchar(255) | YES  |     |         |                |
| effective_date  | date         | YES  |     | NULL    |                |
| created_on      | datetime     | YES  |     | NULL    |                |
| updated_on      | datetime     | YES  |     | NULL    |                |
| wiki_page_title | varchar(255) | YES  |     | NULL    |                |
| status          | varchar(255) | YES  |     | open    |                |
| sharing         | varchar(255) | NO   | MUL | none    |                |
+-----------------+--------------+------+-----+---------+----------------+

...问题表具有以下结构:

--------------
SHOW COLUMNS FROM issues
--------------

+------------------+--------------+------+-----+---------+----------------+
| Field            | Type         | Null | Key | Default | Extra          |
+------------------+--------------+------+-----+---------+----------------+
| id               | int(11)      | NO   | PRI | NULL    | auto_increment |
| tracker_id       | int(11)      | NO   | MUL | 0       |                |
| project_id       | int(11)      | NO   | MUL | 0       |                |
| subject          | varchar(255) | NO   |     |         |                |
| description      | text         | YES  |     | NULL    |                |
| due_date         | date         | YES  |     | NULL    |                |
| category_id      | int(11)      | YES  | MUL | NULL    |                |
| status_id        | int(11)      | NO   | MUL | 0       |                |
| assigned_to_id   | int(11)      | YES  | MUL | NULL    |                |
| priority_id      | int(11)      | NO   | MUL | 0       |                |
| fixed_version_id | int(11)      | YES  | MUL | NULL    |                |
| author_id        | int(11)      | NO   | MUL | 0       |                |
| lock_version     | int(11)      | NO   |     | 0       |                |
| created_on       | datetime     | YES  | MUL | NULL    |                |
| updated_on       | datetime     | YES  |     | NULL    |                |
| start_date       | date         | YES  |     | NULL    |                |
| done_ratio       | int(11)      | NO   |     | 0       |                |
| estimated_hours  | float        | YES  |     | NULL    |                |
| parent_id        | int(11)      | YES  |     | NULL    |                |
| root_id          | int(11)      | YES  | MUL | NULL    |                |
| lft              | int(11)      | YES  |     | NULL    |                |
| rgt              | int(11)      | YES  |     | NULL    |                |
| is_private       | tinyint(1)   | NO   |     | 0       |                |
+------------------+--------------+------+-----+---------+----------------+

问题是,我需要执行什么神奇的 SQL 查询才能将版本复制到新字段并进行清理?我从来都不是 SQL 高手,所以如果能提供任何帮助,我将不胜感激!

编辑 - 我尝试了以下方法:

INSERT INTO custom_values
(Issue, issues.id, 4, versions.name)
SELECT * FROM issues INNER JOIN versions ON issues.fixed_version_id=versions.id;

...但它给了我一个错误:

--------------
INSERT INTO custom_values (Issue, issues.id, 4, versions.name) SELECT * FROM issues INNER JOIN versions ON issues.fixed_version_id=versions.id
--------------

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '4, versions.name) SELECT * FROM issues INNER JOIN versions ON issues.fixed_version_id=ve' at line 1

最佳答案

您的问题

INSERT INTO custom_values
(Issue, issues.id, 4, versions.name)
SELECT * FROM issues INNER JOIN versions ON issues.fixed_version_id=versions.id;

应该修改成这样

INSERT INTO custom_values
(customized_type, customized_id, custom_field_id, value)
SELECT 'Issue', issues.id, 4, versions.name
FROM issues INNER JOIN versions ON issues.fixed_version_id=versions.id;

为了成为有效的 SQL。

但无论如何我都会备份数据库...:-)

关于mysql - 如何将版本从 bugzilla 迁移到 redmine 中新的自定义 'source version' 字段(我需要什么 SQL 语法)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11511331/

相关文章:

wordpress - 将 Wordpress.com 托管博客转换为 BlogEngine.NET

ruby-on-rails - 为此关系创建迁移

windows - 如何指定文件://path to svn on Windows (redmine)?

javascript - 单击一个按钮对 jQuery 中的表格进行排序

php - 不带变量的 pdo 插入

MYSQL 显示 0 即使结果不存在

php - 迁移时找不到驱动程序

Redmine - 将 "Spent Time"字段添加到问题显示

svn - Redmine 和 Subversion

mysql - 在SQL中将两行合并为一行并删除另一行