【问题标题】:Sonar data migration post Database collation change数据库排序规则更改后的声纳数据迁移
【发布时间】:2016-09-29 11:25:55
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 如果数据库是 MSSQL,您可以选择更改数据库的排序规则。这是一条可行的道路吗?
  • 你最初尝试解决哪个问题?
  • 嗨,Paolo,是的,这是 MSSQL。基本上可以通过数据库属性更改排序规则,但我认为这不会更改表的排序规则。此外,如果有的话,我们需要重新创建索引。因此,计划了一个具有新排序规则的新数据库。
  • 在测试环境中,我们用新的排序规则创建了一个新的数据库。在创建表的 Sonar 配置中指出它。我们删除并重新创建了表。使用 SELECT INSERT 将表数据从现有数据库复制到新数据库。声纳已启动并正在运行,但我们没有看到项目。我看到这条消息 - “无法显示小部件,因为所有组件都没有尺寸度量。”

标签: sonarqube sonarqube5.3 sonarqube-ops


【解决方案1】:

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

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

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

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

用法

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

此脚本将迁移以下内容:

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

我的迁移与您的相似(PostGre 中的两个数据库),一步一步的工作! :)

【讨论】:

  • 虽然对外部网站的链接表示赞赏,但我们不鼓励仅提供链接的答案,因为当链接过期时它们会变得无用。请更新您的答案以包含更多信息
  • 顺便欢迎来到SO! :D
猜你喜欢
  • 1970-01-01
  • 2013-08-05
  • 1970-01-01
  • 1970-01-01
  • 2017-09-22
  • 2011-04-08
  • 1970-01-01
  • 1970-01-01
  • 2014-11-25
相关资源
最近更新 更多