1

需要知道我们如何在数据库排序规则更改后迁移数据。基本上,以下是我的计划。

  1. 获取具有新排序规则的新数据库,这是 Sonar (Latin1_General_CS_AS) 的要求。我们现有数据库的排序规则是 - Latin1_General_CI_AS
  2. 设置 Sonar 服务并使用新排序规则指向新数据库。这将在数​​据库上创建 Sonar 所需的新表。
  3. 将数据从旧数据库迁移到新数据库而不更改排序规则。

我可以使用 SELECT INSERT 导入数据,但我遇到了 Sonar 服务未启动发布此内容的问题。(SonarQube 服务未启动

我们不得不截断并删除表并重新创建它们。有人可以建议我们如何迁移数据吗?

我知道 Sonar DB 复制工具,但我相信这仅适用于企业版。(http://docs.sonarqube.org/display/SONAR/Sonar+DB+Copy+Tool

4

1 回答 1

2

此解决方案可能会对您有所帮助。基本上,它使用简单的脚本在数据库和/或 DBMS 之间导出信息。顺便说一句,如果目标中已经存在项目,它可以避免重复。

https://github.com/awltech/sonar-data-migrator

要使用,请按照以下步骤操作。

  • 下载(或克隆)git 项目
  • 在项目上运行 maven install ,它将在 target/assemly 文件夹下创建二进制压缩包。
  • 从您可以访问两个声纳服务器数据库的机器上提取 zip。
  • 使用相同的代码对源声纳和目标声纳进行声纳分析。
  • 在 database.properties 文件中配置源数据库和目标数据库的详细信息
  • 在目标声纳数据库上运行 init.sql,它将创建临时表来存储迁移数据的详细信息
  • 在 script.bat 文件中设置正确的 java 路径(您可以使用 script.sh 在 linux 上执行)。

用法

  • 运行 bat/sh 脚本传递用户作为用户迁移的参数
  • 运行 bat/sh 脚本,将数据作为第一个参数,并将项目键作为声纳报告中的“键”值作为第二个参数。如果 key 未通过,它将适用于 db 中的所有项目。

该脚本将迁移以下内容:

  • 用户(默认 sonar-users 角色分配给所有迁移的用户)
  • 与项目相关的行动计划
  • 问题的所有更改,例如受让人、严重性、状态、行动计划和解决方案
  • 添加到问题的所有评论/评论
  • 所有误报数据

我的迁移和你的类似(PostGre 中有两个数据库),一步一步的工作!:)

于 2019-07-22T14:58:27.950 回答