]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-1608 Add index on projects.root_id for better performances
authorFabrice Bellingard <bellingard@gmail.com>
Fri, 6 Jul 2012 12:30:10 +0000 (14:30 +0200)
committerFabrice Bellingard <bellingard@gmail.com>
Fri, 6 Jul 2012 12:31:29 +0000 (14:31 +0200)
=> when renaming project keys on large databases.

sonar-core/src/main/java/org/sonar/core/persistence/DatabaseVersion.java
sonar-core/src/main/resources/org/sonar/core/persistence/rows-h2.sql
sonar-server/src/main/webapp/WEB-INF/app/views/project/prepare_key_bulk_update.html.erb
sonar-server/src/main/webapp/WEB-INF/db/migrate/321_add_index_on_resource_root_id.rb [new file with mode: 0644]
sonar-server/src/main/webapp/WEB-INF/db/migrate/README.txt

index dfe7480a6190eaa0053692ae2af256584723c4ad..494807f1988f82af43c18d5438bef00c943a99fa 100644 (file)
@@ -35,7 +35,7 @@ import java.util.List;
  */
 public class DatabaseVersion implements BatchComponent, ServerComponent {
 
-  public static final int LAST_VERSION = 320;
+  public static final int LAST_VERSION = 321;
 
   public static enum Status {
     UP_TO_DATE, REQUIRES_UPGRADE, REQUIRES_DOWNGRADE, FRESH_INSTALL
index 804f1f830a0bb6e6005dd9de6ce8a71e56f1b816..913e1ff6d9ce1f6b0271b2e45e84a117302044bf 100644 (file)
@@ -158,6 +158,7 @@ INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('304');
 INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('305');
 INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('306');
 INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('320');
+INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('321');
 
 INSERT INTO USERS(ID, LOGIN, NAME, EMAIL, CRYPTED_PASSWORD, SALT, CREATED_AT, UPDATED_AT, REMEMBER_TOKEN, REMEMBER_TOKEN_EXPIRES_AT) VALUES (1, 'admin', 'Administrator', '', 'a373a0e667abb2604c1fd571eb4ad47fe8cc0878', '48bc4b0d93179b5103fd3885ea9119498e9d161b', '2011-09-26 22:27:48.0', '2011-09-26 22:27:48.0', null, null);
 ALTER TABLE USERS ALTER COLUMN ID RESTART WITH 2;
index e7cf3b3bd685a239a7f9f8d5e23adcc4ba7d0391..ae8efb98ee089fb36c4e0fdeb1d8925350d61cbe 100644 (file)
@@ -45,7 +45,7 @@
       <input type="hidden" value="<%= @replacement_string -%>" name="replacement_string" id="replacement_string">
       <br/>
       <%= submit_tag message('update_key.rename'), :id => 'bulk_update_button', :class => 'action' -%>
-      <a href="<%= url_for :action => 'key', :id => @project.key -%>"><%= message('cancel') -%></a>
+      &nbsp;<a href="<%= url_for :action => 'key', :id => @project.key -%>"><%= message('cancel') -%></a>
       <span class="loading" id="loading_bulk_update" style="display: none; padding: 3px 10px;"></span>
     <% end %>
   <% else %>
diff --git a/sonar-server/src/main/webapp/WEB-INF/db/migrate/321_add_index_on_resource_root_id.rb b/sonar-server/src/main/webapp/WEB-INF/db/migrate/321_add_index_on_resource_root_id.rb
new file mode 100644 (file)
index 0000000..01397f4
--- /dev/null
@@ -0,0 +1,34 @@
+#
+# Sonar, open source software quality management tool.
+# Copyright (C) 2008-2012 SonarSource
+# mailto:contact AT sonarsource DOT com
+#
+# Sonar 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.
+#
+# Sonar 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 Sonar; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02
+#
+
+#
+# Sonar 3.2
+#
+class AddIndexOnResourceRootId < ActiveRecord::Migration
+
+  def self.up
+    begin
+      add_index 'projects', 'root_id', :name => 'projects_root_id'
+    rescue
+      # Ignore, already exists
+    end
+  end
+  
+end
index 906efdf97d2b73b6dbbe72e4f65c98c39c7663ba..dcc2a5250ec8a363ff95ff8a2189e15e97c20844 100644 (file)
@@ -2,8 +2,8 @@ HOW TO ADD A MIGRATION
 
 * Jump some versions when adding the first Ruby on Rails migration of a new sonar version. For example if sonar 2.10 is 193, then sonar 2.11 should start at 200.
 * Complete the DDL files for Derby :
-  + sonar-core/src/main/resources/org/sonar/core/persistence/schema-derby.ddl
-  + sonar-core/src/main/resources/org/sonar/core/persistence/rows-derby.sql :
+  + sonar-core/src/main/resources/org/sonar/core/persistence/schema-h2.ddl
+  + sonar-core/src/main/resources/org/sonar/core/persistence/rows-h2.sql :
     - add "INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('<THE MIGRATION ID>')"
 * Update the migration id defined in sonar-core/src/main/java/org/sonar/core/persistence/DatabaseVersion.java
 * If a table is added or removed, then edit sonar-core/src/main/java/org/sonar/core/persistence/DatabaseUtils.java