如何将 bugzilla 中的版本迁移到 redmine 中新的自定义“源版本”字段(我需要什么 SQL 语法)?

2024-03-29

我正在将 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 高手,所以我们将不胜感激地收到任何帮助!

Edit- 我尝试了以下方法:

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。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 bugzilla 中的版本迁移到 redmine 中新的自定义“源版本”字段(我需要什么 SQL 语法)? 的相关文章

  • MySQL Workbench 连接编码

    在测试一些代码时 我偶然发现了以下 MySQL 错误 Error Code 1267 Illegal mix of collations utf8 general ci IMPLICIT and utf8mb4 general ci COE
  • 将到期日期作为 TIMESTAMP 列的默认值

    有没有办法将列的默认值设置为过期日期 从CURRENT TIMESTAMP 我已经尝试过 ALTER TABLE table ADD COLUMN expire TIMESTAMP NOT NULL DEFAULT TIMESTAMPADD
  • URL 重写查询数据库?

    我试图了解 URL 重写的工作原理 我有以下链接 mysite com profile php id 23 我想用用户的名字和姓氏重写上面的网址 mysite com directory liam gallagher 然而 根据我读到的内容
  • 搜索拥有超过十亿条记录的数据库的最有效方法?

    我的客户有一个巨大的数据库 仅包含三个字段 主键 无符号数 姓名 多字文本 描述 最多 1000 个 varchar 该数据库拥有超过数十亿条条目 我以前没有处理如此大量数据的经验 他希望我设计一个使用 AJAX 如 Google 的界面来
  • 在 SQL 查询中使用聚合函数

    我的表结构是这样的 ATT Table Fields Act ID Assigned To ID Percent Complete Integer value Act ID is primary key Assigned To ID is
  • TFS2012错误的用户丢失工作区

    我的 TFS2012 有一个非常不寻常的问题 我们刚刚跨域迁移并从 TFS2010 升级到 TFS2012 一切似乎都与一个用户无关 我们似乎无法让他的工作空间正常工作 当我连接到 TFS 服务器时 我输入服务器名称和端口号 这会连接 但在
  • 选择从查询中检索列名称的列

    我正在寻找一种优雅的方法来从表 A 中选择列 其中列名是从表 B 上的查询中检索的 对表 B 的查询结果 col01 表 A 有几个名为 col01 col02 col03 最终查询应该是为了结果 result from B effecti
  • sql 查询不适用于 order by

    这是我原来有效的查询 Select FROM story st sentences s speaker sp WHERE st lesson id 1 AND st speaker id sp speaker id AND st sente
  • 按任意顺序对 SQL 行输出进行排序?

    因此 在我的数据库中 我存储乐器名称 以及各种其他属性 比方说id是主键 并且name是唯一的密钥 在 PHP 脚本中 我按仪器类别选择项目 如下所示 name mysql real escape string POST name row
  • 标签系统:Toxi 解决方案问题

    我对标签数据库模式的 Toxi 解决方案感到有点困惑 我正在开发一个系统 用户可以向该系统提交项目 并且这些项目可以具有与其关联的标签 在阅读了 tagchemas 后 我发现 Toxi 解决方案最适合我的需求 但是 我不完全确定我的计划是
  • mysql 部分索引、反向索引

    我有一张包含单词列表的表格 字 VARCHAR 16 我需要创建一个反向索引 IE 单词 apple 将索引为 elppa 单词 banana 将索引为 ananab 依此类推 另外 是否可以索引单词的一部分 例如 跳过第一个 最后一个或
  • 如何获取MySQL中最后更新的行的ID?

    如何使用 PHP 获取 MySQL 中最后更新行的 ID 我找到了这个问题的答案 SET update id 0 UPDATE some table SET column name value id SELECT update id id
  • gcc 不会编译和运行 MySQL C 库

    include
  • 如何从 netbeans 远程调试 jar

    我正在尝试弄清楚如何调试远程运行的 jar 这是我的场景 我的 jar 将从 VPS 运行 这个jar基本上运行一个服务器 对于游戏 所以它还连接到 mysql 数据库 我使用 3 个 bat 文件启动服务器 如下所示 设置 CLASSPA
  • Symfony2 - 访问被拒绝(用户未经过完全身份验证)

    我正在使用 Symfony2 开发一个网站 直到今天 登录没有问题 但现在登录时我没有正确验证 Symfony 分析器将我列为logged in as anon而不是我登录的用户 我还被重定向回登录页面而不是目标路径 登录过程由传统的登录表
  • 我们如何在存储过程中使用 mysql_affected_rows()

    我们如何使用mysql affected rows 在存储过程中 Use the ROW COUNT http dev mysql com doc refman 5 1 en information functions html funct
  • MySQL“GROUP BY NULL”是做什么的?

    我正在维护一些遗留代码 其中有一个我不理解的 SQL 查询 我希望这里有人可以向我解释这样做的目的 查询如下所示 select from product performance where merchantid 2151277 and cl
  • 在列名中使用保留字

    这是一些简单的代码 但我只是不知道为什么我不能使用这个词作为表的实体 CREATE TABLE IF NOT EXISTS users key INT PRIMARY KEY NOT NULL AUTO INCREMENT username
  • 课程完成时更新外部数据库

    我的场景 Moodle 中的用户完成了一门课程 一旦发生这种情况 我想更新外部数据库 我的理解是 每次运行 cron 作业时都会触发 course completed 事件 使用一些简单值 例如已完成课程的用户名 ID 课程 ID 以及完成
  • MySQL ORDER BY rand(),名称 ASC

    我想获取一个包含 1000 个用户的数据库并随机选择 20 个用户 ORDER BY rand LIMIT 20 然后按名称对结果集进行排序 我想出了以下查询not像我希望的那样工作 SELECT FROM users WHERE 1 OR

随机推荐

  • 如何设置任务的计划完成日期?

    我试图弄清楚如何在创建或更新任务时设置计划完成日期 任务的计划完成日期始终等于项目创建的日期 我使用了几种不同的日期时间格式 但它从未改变 这是我使用过的两个没有抛出错误的 2015 05 02T08 00 00 000 0500 2015
  • 可以打印超过 100 行的 data.table 吗?

    data table 有一个很好的功能 可以抑制输出到表的头部和尾部 是否可以一次查看 打印 100 行以上 library data table Convert the ubiquitous iris data to a data tab
  • 实体框架代码优先和连接字符串

    我有一个使用 Entity Framework Code First 的小型 MVC 3 应用程序 并为模型使用此连接字符串 data source SQLEXPRESS Integrated Security SSPI AttachDBF
  • Flask 应用程序中的 Rpy2:致命错误:无法初始化 JIT

    我有一个 Flask 应用程序 我正在尝试添加一个 RESTful 端点 该端点使用 rpy2 从 rds文件 当我运行我的测试脚本时python3 testscript py其中包含import rpy2 robjects as obje
  • Laravel where if 语句

    我在从数据库中选择时遇到了问题 基本上我想要实现的是 我有一个包含 3 列的表 type number date 我需要根据列 类型 执行操作 If type 1 then where number gt 1 else where date
  • DbContext AutoDetectChangesEnabled 设置为 false 检测更改

    我有点难住了 根据我读到的设置DbContext AutoDetectChangesEnabled to false应该禁用需要调用的更改跟踪DbContext DetectChanges为了识别要发送到数据库的更改 但是 从下面的日志可以
  • Aria2 不重新下载文件

    我正在使用 aria2 下载动态生成的文件列表 我希望它跳过下载目录中已有的文件 但它没有这样做 而是重新下载它们并添加一个 1到文件名 我尝试使用 check integrity true 但这并没有改变行为 有没有办法让它跳过已经存在的
  • 检查所有复选框jquery

    为什么我的js代码中可以一键点击name check all检查所有复选框 HTML div div
  • 我应该使用哪个 Apple 推送通知服务 Java 库? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我需要使用 Java 服务器将推送通知发送到 iOS 设备Apple 推送通知服务 APNS http
  • ui-router 中 templateUrl 从一种状态动态更改为另一种状态

    html a target blank t name a 上面的代码位于 ng repeat 中 其中许多模板链接加载了名称和 id 因此当我单击每个链接时 href 将更新 并将 id 号附加到所选模板链接 我使用相同的控制器生成大约十个
  • 当 html 属性和 css 样式的功能重叠时

    1 如果在CSS文件中我们指定以下样式 td text align center 在 Html 文件中我们有 td align left 那么 CSS 文件中设置的值将优先于内联 html 属性 因此其中包含的元素 td 单元格将与中心对齐
  • 如何将 package.json 中的所有 npm 依赖项记录到 README.md 中

    我想记录所有 npmdevDependencies and dependencies中描述的package json文件到README md文件在同一个项目中 以下属性值得关注name description and version 当然
  • React-Vega 和 React-Vega 工具提示

    我在用着react vega lite 官方给出的例子 https vega github io vega lite https vega github io vega lite https vega github io react veg
  • Anaconda ImportError:/usr/lib64/libstdc++.so.6:找不到版本“GLIBCXX_3.4.21”

    当我尝试在 conda 环境中运行 Python 脚本时 出现以下导入错误 squad azada scholar fe00 Desktop Toy Problem Team 2 python3 train py Traceback mos
  • 将任何文件转换为二进制文件,反之亦然

    我在 StackOverFlow 网站和互联网上搜索了这个问题及其相关问题 但仍然没有得到明确的答案 我想知道我可以使用什么软件将任何文件 关于大小 转换为包含此特定文件的零和一 仅 的文本文件 然后将包含这些零和一的文本文件转换回原始文件
  • 如何在不使用 POJO 的情况下利用 Spring Batch?

    I know BeanWrapperFieldSetMapper类取决于 POJO 但事情是这样的 如果我想利用 Spring Batch 功能但不想创建单独的作业 不想编写 POJO 和单独的读取器写入或映射器 该怎么办 我的要求是读取
  • 如何制作滚动条占位符

    我的问题是浏览器窗口垂直滚动条被删除 例如overflow hidden 稍后再次出现时会使页面跳转 我使用 jQuery 从访问者中删除滚动选项 同时运行脚本并将页面滚动到特定点 然后使其再次重新出现 当滚动条不存在时 我可以为滚动条创建
  • ES 可从curl 访问,但不能从Marvel/Sense 访问

    我已经沉浸在 Elastic Search 中 2 个小时了 我用 Marvel 成功安装了 ES 使用marvel agent enabled false在 config elasticsearch yml 中 并且能够从 Sense 发
  • 使用 commons-exec 流式输出?

    谁能给我一个例子来说明如何流式传输外部程序的输出DefaultExecutor 我没有找到任何描述如何执行此操作的文档 我的外部进程将运行几个小时 因此仅获取所有输出数据是不可行的 它必须被流式传输 注意 此解决方案是同步的 因此它不会流式
  • 如何将 bugzilla 中的版本迁移到 redmine 中新的自定义“源版本”字段(我需要什么 SQL 语法)?

    我正在将 bugzilla 安装迁移到 redmine 在 bugzilla 中 错误总是根据导致问题出现的软件版本进行记录 由于 redmine 支持路线图 我想做一些迁移的事情 我想做的第一部分是将所有当前版本设置移至新的自定义 源版本