SonarQube 5.61->6.0升级失败:表“项目”已存在

SonarQube 5.61->6.0升级失败:表“项目”已存在,sonarqube,upgrade,sonarqube-ops,Sonarqube,Upgrade,Sonarqube Ops,按照通常的升级程序从5.6.1升级到6.0后,SonarQube服务器不会启动: ActiveRecord::JDBCError:表“projects”已存在 以下情况下会发生此错误: 在部署新发行版和 根据升级过程进行配置 将其配置为连接到同一位置的现有5.6.1数据库, 证书等。。在MySQL 5.7上运行 在那个阶段,我没有运行任何数据库升级 如果我再次启动sonarqube服务器,则会发生相同的错误如果您没有通过转到/setup页触发迁移,则执行DDL操作很可能意味着它正在尝试初始化架构

按照通常的升级程序从5.6.1升级到6.0后,SonarQube服务器不会启动:

ActiveRecord::JDBCError:表“projects”已存在

以下情况下会发生此错误:

在部署新发行版和 根据升级过程进行配置 将其配置为连接到同一位置的现有5.6.1数据库, 证书等。。在MySQL 5.7上运行 在那个阶段,我没有运行任何数据库升级
如果我再次启动sonarqube服务器,则会发生相同的错误

如果您没有通过转到/setup页触发迁移,则执行DDL操作很可能意味着它正在尝试初始化架构并创建其整个数据库。我的猜测是SQ错误地检测到数据库是空的,这是通过查询表schema_迁移实现的。这张桌子有吗?是否可以通过用户帐户SQ访问数据库?此表是否为空?是的,存在schema_迁移和项目表,可以使用与SonarQube相同的用户进行查询:D:\MySQL\MySQL Server 5.7\bin>MySQL-u sonar-p sonar输入密码:*******欢迎使用MySQL监视器。命令以结束;或\g。[…]mysql>从模式_迁移中选择计数;+----+|count |+------+| 400 |+------+mysql>从项目中选择count;+------+|计数|+------+| 73621 |+------+在这一点上,我只能鼓励您仔细检查所有配置,不做任何假设。一切都表明SQ没有从表schema_migrations中读取任何行,或者它是空的,或者它似乎不存在,并假设从那里数据库是空的。好吧,在简单地重新启动MySQL之后,这个问题不会重现。。。我没有解释,MySQL端没有报告错误。如果您没有通过转到/setup页触发迁移,那么我们可以关闭此报告。SQ doing DDL operations is startup很可能意味着它正在尝试初始化架构并创建其整个数据库。我的猜测是SQ错误地检测到数据库是空的,这是通过查询表schema_迁移实现的。这张桌子有吗?是否可以通过用户帐户SQ访问数据库?此表是否为空?是的,存在schema_迁移和项目表,可以使用与SonarQube相同的用户进行查询:D:\MySQL\MySQL Server 5.7\bin>MySQL-u sonar-p sonar输入密码:*******欢迎使用MySQL监视器。命令以结束;或\g。[…]mysql>从模式_迁移中选择计数;+----+|count |+------+| 400 |+------+mysql>从项目中选择count;+------+|计数|+------+| 73621 |+------+在这一点上,我只能鼓励您仔细检查所有配置,不做任何假设。一切都表明SQ没有从表schema_migrations中读取任何行,或者它是空的,或者它似乎不存在,并假设从那里数据库是空的。好吧,在简单地重新启动MySQL之后,这个问题不会重现。。。我没有解释,MySQL端没有报告错误。我们可以关闭此报告
CREATE TABLE `projects` (
    `id` int(11) auto_increment PRIMARY KEY, 
    `name` varchar(256), 
    `description` varchar(2000), 
    `enabled` tinyint(1) DEFAULT 1 NOT NULL, 
    `scope` varchar(3), 
    `qualifier` varchar(10), 
    `kee` varchar(400), 
    `root_id` integer, 
    `language` varchar(20), 
    `copy_resource_id` integer, 
    `long_name` varchar(256), 
    `person_id` integer, 
    `created_at` datetime
) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin