]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-1974 RULE_FAILURES.SNAPSHOT_ID must be nullable
authorSimon Brandhof <simon.brandhof@gmail.com>
Mon, 28 Nov 2011 15:34:11 +0000 (16:34 +0100)
committerSimon Brandhof <simon.brandhof@gmail.com>
Mon, 28 Nov 2011 15:37:03 +0000 (16:37 +0100)
sonar-core/src/main/java/org/sonar/jpa/entity/SchemaMigration.java
sonar-core/src/main/resources/org/sonar/persistence/rows-derby.sql
sonar-core/src/main/resources/org/sonar/persistence/schema-derby.ddl
sonar-plugin-api/src/main/java/org/sonar/api/database/model/RuleFailureModel.java
sonar-server/src/main/webapp/WEB-INF/db/migrate/232_nullable_rule_failures_snapshot_id.rb [new file with mode: 0644]

index 023a71496c3897796b4aee6730aa1d2a9dfc3edf..6cfd8d15f218d7c133f64cafcb61ccc92717c008 100644 (file)
@@ -42,7 +42,7 @@ public class SchemaMigration {
       - complete the Derby DDL file used for unit tests : sonar-testing-harness/src/main/resources/org/sonar/test/persistence/sonar-test.ddl
 
    */
-  public static final int LAST_VERSION = 231;
+  public static final int LAST_VERSION = 232;
 
   public final static String TABLE_NAME = "schema_migrations";
 
index 8f29cef7727264ae5415c32e0c31795c95ea5578..b9b04e14ea615b32aa1f4dfb61a8ccf0eefbff23 100644 (file)
@@ -166,6 +166,7 @@ INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('221');
 INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('222');
 INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('230');
 INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('231');
+INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('232');
 
 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 0c5a9267935b40da97f672fd55574af32eded5bf..ccf59909a5a8aa5e74302c705d846d5ee83e0b05 100644 (file)
@@ -421,7 +421,7 @@ CREATE TABLE "DASHBOARDS" (
 
 CREATE TABLE "RULE_FAILURES" (
   "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1),
-  "SNAPSHOT_ID" INTEGER NOT NULL,
+  "SNAPSHOT_ID" INTEGER,
   "RULE_ID" INTEGER NOT NULL,
   "FAILURE_LEVEL" INTEGER NOT NULL,
   "MESSAGE" VARCHAR(4000),
index 133735e4badb8429149b1be1f4cd83f80f9a0558..a3455a630fa01857f5467dcbe63446bc580d1a4e 100644 (file)
@@ -35,7 +35,7 @@ public class RuleFailureModel extends BaseIdentifiable {
 
   public static final int MESSAGE_COLUMN_SIZE = 4000;
 
-  @Column(name = "snapshot_id")
+  @Column(name = "snapshot_id", nullable = true)
   protected Integer snapshotId;
 
   @Column(name = "rule_id", updatable = false, nullable = false)
diff --git a/sonar-server/src/main/webapp/WEB-INF/db/migrate/232_nullable_rule_failures_snapshot_id.rb b/sonar-server/src/main/webapp/WEB-INF/db/migrate/232_nullable_rule_failures_snapshot_id.rb
new file mode 100644 (file)
index 0000000..7f69636
--- /dev/null
@@ -0,0 +1,41 @@
+#
+# Sonar, entreprise quality control tool.
+# Copyright (C) 2008-2011 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 2.13
+# http://jira.codehaus.org/browse/SONAR-1974
+#
+class NullableRuleFailuresSnapshotId < ActiveRecord::Migration
+
+  def self.up
+    dialect = ActiveRecord::Base.configurations[ENV['RAILS_ENV']]["dialect"]
+
+    if dialect == 'sqlserver'
+      remove_index 'rule_failures', 'snapshot_id', :name => 'rule_failure_snapshot_id'
+    end
+
+    change_column 'rule_failures', 'snapshot_id', :integer, :null => true
+
+    if dialect == 'sqlserver'
+      add_index 'rule_failures', 'snapshot_id', :name => 'rule_failure_snapshot_id'
+    end
+  end
+
+end