aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFabrice Bellingard <bellingard@gmail.com>2012-03-26 18:56:38 +0200
committerFabrice Bellingard <bellingard@gmail.com>2012-03-26 18:56:38 +0200
commit3c98441e049fe73982ee3471ea0b9baa58fbaa91 (patch)
tree9f1e5f4d306deffc18fb4d360d29eaf664fb4830
parente93d3eb4d95d89051eb9ea6f6ab6b8f2f6751487 (diff)
downloadsonarqube-3c98441e049fe73982ee3471ea0b9baa58fbaa91.tar.gz
sonarqube-3c98441e049fe73982ee3471ea0b9baa58fbaa91.zip
SONAR-3352 Change boolean columns to non-nullable in migration script
-rw-r--r--sonar-core/src/main/java/org/sonar/core/persistence/DatabaseVersion.java2
-rw-r--r--sonar-core/src/main/resources/org/sonar/core/persistence/rows-derby.sql1
-rw-r--r--sonar-core/src/main/resources/org/sonar/core/persistence/schema-derby.ddl4
-rw-r--r--sonar-core/src/test/java/org/sonar/core/review/ReviewDaoTest.java12
-rw-r--r--sonar-core/src/test/resources/org/sonar/core/review/ReviewDaoTest/update.xml4
-rw-r--r--sonar-core/src/test/resources/org/sonar/core/review/ReviewDaoTest/update_null_manual_severity_and_violation-result.xml21
-rw-r--r--sonar-core/src/test/resources/org/sonar/core/review/ReviewDaoTest/update_null_manual_severity_and_violation.xml21
-rw-r--r--sonar-server/src/main/webapp/WEB-INF/db/migrate/282_update_reviews_boolean_columns.rb31
8 files changed, 37 insertions, 59 deletions
diff --git a/sonar-core/src/main/java/org/sonar/core/persistence/DatabaseVersion.java b/sonar-core/src/main/java/org/sonar/core/persistence/DatabaseVersion.java
index af71db19c51..de431b0fb26 100644
--- a/sonar-core/src/main/java/org/sonar/core/persistence/DatabaseVersion.java
+++ b/sonar-core/src/main/java/org/sonar/core/persistence/DatabaseVersion.java
@@ -32,7 +32,7 @@ import java.util.List;
*/
public class DatabaseVersion implements BatchComponent, ServerComponent {
- public static final int LAST_VERSION = 281;
+ public static final int LAST_VERSION = 282;
public static enum Status {
UP_TO_DATE, REQUIRES_UPGRADE, REQUIRES_DOWNGRADE, FRESH_INSTALL
diff --git a/sonar-core/src/main/resources/org/sonar/core/persistence/rows-derby.sql b/sonar-core/src/main/resources/org/sonar/core/persistence/rows-derby.sql
index 01697d00a17..cd59e806017 100644
--- a/sonar-core/src/main/resources/org/sonar/core/persistence/rows-derby.sql
+++ b/sonar-core/src/main/resources/org/sonar/core/persistence/rows-derby.sql
@@ -181,6 +181,7 @@ INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('262');
INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('263');
INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('280');
INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('281');
+INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('282');
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-core/src/main/resources/org/sonar/core/persistence/schema-derby.ddl b/sonar-core/src/main/resources/org/sonar/core/persistence/schema-derby.ddl
index 4df7a9a18ad..334c5c8edb3 100644
--- a/sonar-core/src/main/resources/org/sonar/core/persistence/schema-derby.ddl
+++ b/sonar-core/src/main/resources/org/sonar/core/persistence/schema-derby.ddl
@@ -314,8 +314,8 @@ CREATE TABLE "REVIEWS" (
"RESOURCE_LINE" INTEGER,
"RESOLUTION" VARCHAR(200),
"RULE_ID" INTEGER,
- "MANUAL_VIOLATION" BOOLEAN,
- "MANUAL_SEVERITY" BOOLEAN
+ "MANUAL_VIOLATION" BOOLEAN NOT NULL,
+ "MANUAL_SEVERITY" BOOLEAN NOT NULL
);
CREATE TABLE "ACTIVE_FILTERS" (
diff --git a/sonar-core/src/test/java/org/sonar/core/review/ReviewDaoTest.java b/sonar-core/src/test/java/org/sonar/core/review/ReviewDaoTest.java
index 1c5f62fd852..155ba0f3d76 100644
--- a/sonar-core/src/test/java/org/sonar/core/review/ReviewDaoTest.java
+++ b/sonar-core/src/test/java/org/sonar/core/review/ReviewDaoTest.java
@@ -98,16 +98,4 @@ public class ReviewDaoTest extends DaoTestCase {
checkTables("update", "reviews");
}
-
- @Test
- public void updateWithNullManualSeverityAndViolation() {
- setupData("update_null_manual_severity_and_violation");
- Collection<ReviewDto> reviews = dao.selectOpenByResourceId(400L);
- ReviewDto review = reviews.iterator().next();
- review.setLine(12345);
-
- dao.update(reviews);
-
- checkTables("update_null_manual_severity_and_violation", "reviews");
- }
}
diff --git a/sonar-core/src/test/resources/org/sonar/core/review/ReviewDaoTest/update.xml b/sonar-core/src/test/resources/org/sonar/core/review/ReviewDaoTest/update.xml
index f9445f75b91..12303a0a6f9 100644
--- a/sonar-core/src/test/resources/org/sonar/core/review/ReviewDaoTest/update.xml
+++ b/sonar-core/src/test/resources/org/sonar/core/review/ReviewDaoTest/update.xml
@@ -15,7 +15,7 @@
title="[null]"
resource_id="400"
rule_id="500"
- manual_violation="[null]"
- manual_severity="[null]"/>
+ manual_violation="[false]"
+ manual_severity="[false]"/>
</dataset>
diff --git a/sonar-core/src/test/resources/org/sonar/core/review/ReviewDaoTest/update_null_manual_severity_and_violation-result.xml b/sonar-core/src/test/resources/org/sonar/core/review/ReviewDaoTest/update_null_manual_severity_and_violation-result.xml
deleted file mode 100644
index f9231700484..00000000000
--- a/sonar-core/src/test/resources/org/sonar/core/review/ReviewDaoTest/update_null_manual_severity_and_violation-result.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<dataset>
-
- <reviews
- id="100"
- status="OPEN"
- rule_failure_permanent_id="100"
- resolution="RESOLVE"
- created_at="[null]"
- updated_at="[null]"
- project_id="20"
- resource_line="12345"
- severity="BLOCKER"
- user_id="300"
- assignee_id="[null]"
- title="[null]"
- resource_id="400"
- rule_id="500"
- manual_violation="[false]"
- manual_severity="[false]"/>
-
-</dataset>
diff --git a/sonar-core/src/test/resources/org/sonar/core/review/ReviewDaoTest/update_null_manual_severity_and_violation.xml b/sonar-core/src/test/resources/org/sonar/core/review/ReviewDaoTest/update_null_manual_severity_and_violation.xml
deleted file mode 100644
index f9445f75b91..00000000000
--- a/sonar-core/src/test/resources/org/sonar/core/review/ReviewDaoTest/update_null_manual_severity_and_violation.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<dataset>
-
- <reviews
- id="100"
- status="OPEN"
- rule_failure_permanent_id="100"
- resolution="RESOLVE"
- created_at="[null]"
- updated_at="[null]"
- project_id="20"
- resource_line="200"
- severity="BLOCKER"
- user_id="300"
- assignee_id="[null]"
- title="[null]"
- resource_id="400"
- rule_id="500"
- manual_violation="[null]"
- manual_severity="[null]"/>
-
-</dataset>
diff --git a/sonar-server/src/main/webapp/WEB-INF/db/migrate/282_update_reviews_boolean_columns.rb b/sonar-server/src/main/webapp/WEB-INF/db/migrate/282_update_reviews_boolean_columns.rb
new file mode 100644
index 00000000000..e2b7515daf0
--- /dev/null
+++ b/sonar-server/src/main/webapp/WEB-INF/db/migrate/282_update_reviews_boolean_columns.rb
@@ -0,0 +1,31 @@
+#
+# Sonar, entreprise quality control 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 2.15
+#
+class UpdateReviewsBooleanColumns < ActiveRecord::Migration
+
+ def self.up
+ change_column 'reviews', 'manual_severity', :boolean, :null => false
+ change_column 'reviews', 'manual_violation', :boolean, :null => false
+ end
+
+end