From: Simon Brandhof Date: Thu, 20 Mar 2014 08:12:12 +0000 (+0100) Subject: Revert SONAR-4950 X-Git-Tag: 4.3~350 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=7e398350275e8b2a30124a4650f29e10d6d31260;p=sonarqube.git Revert SONAR-4950 --- diff --git a/sonar-core/src/main/resources/org/sonar/core/persistence/schema-h2.ddl b/sonar-core/src/main/resources/org/sonar/core/persistence/schema-h2.ddl index 71540499f8e..1e87ced7ec7 100644 --- a/sonar-core/src/main/resources/org/sonar/core/persistence/schema-h2.ddl +++ b/sonar-core/src/main/resources/org/sonar/core/persistence/schema-h2.ddl @@ -702,8 +702,6 @@ CREATE INDEX "SNAPSHOTS_ROOT_PROJECT_ID" ON "SNAPSHOTS" ("ROOT_PROJECT_ID"); CREATE INDEX "GROUP_ROLES_ROLE" ON "GROUP_ROLES" ("ROLE"); -CREATE UNIQUE INDEX "GROUP_ROLES_UNIQUE" ON "GROUP_ROLES" ("GROUP_ID", "RESOURCE_ID", "ROLE"); - CREATE UNIQUE INDEX "RULES_PLUGIN_KEY_AND_NAME" ON "RULES" ("PLUGIN_RULE_KEY", "PLUGIN_NAME"); CREATE UNIQUE INDEX "RULE_TAGS_UNIQUE" ON "RULES_RULE_TAGS" ("RULE_ID", "RULE_TAG_ID"); diff --git a/sonar-server/src/main/webapp/WEB-INF/db/migrate/482_add_unique_constraint_to_group_roles.rb b/sonar-server/src/main/webapp/WEB-INF/db/migrate/482_add_unique_constraint_to_group_roles.rb deleted file mode 100644 index bc1cbcb77a0..00000000000 --- a/sonar-server/src/main/webapp/WEB-INF/db/migrate/482_add_unique_constraint_to_group_roles.rb +++ /dev/null @@ -1,46 +0,0 @@ -# -# SonarQube, open source software quality management tool. -# Copyright (C) 2008-2014 SonarSource -# mailto:contact AT sonarsource DOT com -# -# SonarQube is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 3 of the License, or (at your option) any later version. -# -# SonarQube is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program; if not, write to the Free Software Foundation, -# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -# - -# -# SonarQube 4.2 -# See SONAR-4950 -# -class AddUniqueConstraintToGroupRoles < ActiveRecord::Migration - - class GroupRole < ActiveRecord::Base - end - - def self.up - GroupRole.reset_column_information - - duplicated_ids = ActiveRecord::Base.connection.select_rows('select group_id,resource_id,role from group_roles group by group_id,resource_id,role having count(*) > 1') - say_with_time "Remove #{duplicated_ids.size} duplicated group roles" do - duplicated_ids.each do |fields| - rows = GroupRole.find(:all, :conditions => {:group_id => fields[0], :resource_id => fields[1], :role => fields[2]}) - # delete all rows except the last one - rows[0...-1].each do |row| - GroupRole.delete(row.id) - end - end - end - - add_index 'group_roles', ['group_id', 'resource_id', 'role'], :unique => true, :name => 'uniq_group_roles' - end -end diff --git a/sonar-server/src/main/webapp/WEB-INF/db/migrate/482_purge_group_roles.rb b/sonar-server/src/main/webapp/WEB-INF/db/migrate/482_purge_group_roles.rb new file mode 100644 index 00000000000..b6d3d169e71 --- /dev/null +++ b/sonar-server/src/main/webapp/WEB-INF/db/migrate/482_purge_group_roles.rb @@ -0,0 +1,44 @@ +# +# SonarQube, open source software quality management tool. +# Copyright (C) 2008-2014 SonarSource +# mailto:contact AT sonarsource DOT com +# +# SonarQube is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. +# +# SonarQube is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# + +# +# SonarQube 4.2 +# See SONAR-4950 - reverted. Unique constraint is not created but duplications are still purged. +# +class PurgeGroupRoles < ActiveRecord::Migration + + class GroupRole < ActiveRecord::Base + end + + def self.up + GroupRole.reset_column_information + + duplicated_ids = ActiveRecord::Base.connection.select_rows('select group_id,resource_id,role from group_roles group by group_id,resource_id,role having count(*) > 1') + say_with_time "Remove #{duplicated_ids.size} duplicated group roles" do + duplicated_ids.each do |fields| + rows = GroupRole.find(:all, :conditions => {:group_id => fields[0], :resource_id => fields[1], :role => fields[2]}) + # delete all rows except the last one + rows[0...-1].each do |row| + GroupRole.delete(row.id) + end + end + end + end +end