]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-926 Add a DB migration script for package -> directory
authorJulien HENRY <julien.henry@sonarsource.com>
Fri, 17 Jan 2014 10:37:40 +0000 (11:37 +0100)
committerJulien HENRY <julien.henry@sonarsource.com>
Fri, 17 Jan 2014 10:38:28 +0000 (11:38 +0100)
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/db/migrate/490_migrate_package_resources.rb [new file with mode: 0644]

index c6aa0cc296c582f5abd15491ba34764211b7044a..3938a78a191d8765a815d03c4c8a7fddf6028078 100644 (file)
@@ -33,7 +33,7 @@ import java.util.List;
  */
 public class DatabaseVersion implements BatchComponent, ServerComponent {
 
-  public static final int LAST_VERSION = 489;
+  public static final int LAST_VERSION = 490;
 
   public static enum Status {
     UP_TO_DATE, REQUIRES_UPGRADE, REQUIRES_DOWNGRADE, FRESH_INSTALL
index 0cd78edcbcda305e0f390624d09316a1ef803cc6..152cf2f5f63d20067b048ab3e798654327c0897a 100644 (file)
@@ -200,6 +200,7 @@ INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('485');
 INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('486');
 INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('488');
 INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('489');
+INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('490');
 
 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;
diff --git a/sonar-server/src/main/webapp/WEB-INF/db/migrate/490_migrate_package_resources.rb b/sonar-server/src/main/webapp/WEB-INF/db/migrate/490_migrate_package_resources.rb
new file mode 100644 (file)
index 0000000..4e217a5
--- /dev/null
@@ -0,0 +1,45 @@
+#
+# SonarQube, open source software quality management tool.
+# Copyright (C) 2008-2013 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.
+#
+
+#
+# Sonar 4.2
+# SONAR-926
+#
+class MigratePackageResources < ActiveRecord::Migration
+
+  class Project < ActiveRecord::Base
+  end
+
+  def self.up
+    packages = Project.find(:all, :conditions => {:qualifier => 'PAC'})
+    packages.each do |package|
+      key = package.kee.split(":").last
+      prefix = package.kee.chomp(key)
+      if key == '[default]'
+        package.kee = prefix + '[root]'
+      else
+        package.kee = prefix + key.gsub('.', '/')
+      end
+      package.qualifier = 'DIR'
+      package.save
+    end
+  end
+
+end