From a09edd5d2186ae5bb88616e2d551fac1690634bd Mon Sep 17 00:00:00 2001 From: Simon Brandhof Date: Tue, 27 Mar 2012 10:40:38 +0200 Subject: [PATCH] Refactor the table AUTHORS * add primary key * rename the column COMMITTER to LOGIN --- .../core/persistence/DatabaseVersion.java | 2 +- .../org/sonar/core/persistence/rows-derby.sql | 1 + .../sonar/core/persistence/schema-derby.ddl | 7 +++- .../WEB-INF/db/migrate/262_create_authors.rb | 6 +-- .../db/migrate/283_add_authors_primary_key.rb | 40 +++++++++++++++++++ 5 files changed, 48 insertions(+), 8 deletions(-) create mode 100644 sonar-server/src/main/webapp/WEB-INF/db/migrate/283_add_authors_primary_key.rb 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 de431b0fb26..00c9958beff 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 = 282; + public static final int LAST_VERSION = 283; 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 cd59e806017..0ba5e36a0ac 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 @@ -182,6 +182,7 @@ 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 SCHEMA_MIGRATIONS(VERSION) VALUES ('283'); 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 334c5c8edb3..bf81790803f 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 @@ -503,8 +503,9 @@ CREATE TABLE "RULE_NOTES" ( ); CREATE TABLE "AUTHORS" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), "PERSON_ID" INTEGER, - "COMMITTER" VARCHAR(100), + "LOGIN" VARCHAR(100), "CREATED_AT" TIMESTAMP, "UPDATED_AT" TIMESTAMP ); @@ -696,4 +697,6 @@ ALTER TABLE "ACTION_PLANS" ADD CONSTRAINT "SQL110927104447650" PRIMARY KEY ("ID" ALTER TABLE "ACTIVE_RULE_NOTES" ADD CONSTRAINT "SQL110927104847650" PRIMARY KEY ("ID"); -ALTER TABLE "RULE_NOTES" ADD CONSTRAINT "SQL110927184847650" PRIMARY KEY ("ID"); +ALTER TABLE "RULE_NOTES" ADD PRIMARY KEY ("ID"); + +ALTER TABLE "AUTHORS" ADD PRIMARY KEY ("ID"); diff --git a/sonar-server/src/main/webapp/WEB-INF/db/migrate/262_create_authors.rb b/sonar-server/src/main/webapp/WEB-INF/db/migrate/262_create_authors.rb index f43c3b4a909..c9ca527aa16 100644 --- a/sonar-server/src/main/webapp/WEB-INF/db/migrate/262_create_authors.rb +++ b/sonar-server/src/main/webapp/WEB-INF/db/migrate/262_create_authors.rb @@ -24,11 +24,7 @@ class CreateAuthors < ActiveRecord::Migration def self.up - create_table 'authors', :id => false do |t| - t.column 'person_id', :integer, :null => false - t.column 'committer', :string, :null => true, :limit => 100 - t.timestamps - end + # removed in version 2.15, see migration 283 end end diff --git a/sonar-server/src/main/webapp/WEB-INF/db/migrate/283_add_authors_primary_key.rb b/sonar-server/src/main/webapp/WEB-INF/db/migrate/283_add_authors_primary_key.rb new file mode 100644 index 00000000000..c129df42b1f --- /dev/null +++ b/sonar-server/src/main/webapp/WEB-INF/db/migrate/283_add_authors_primary_key.rb @@ -0,0 +1,40 @@ +# +# 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 AddAuthorsPrimaryKey < ActiveRecord::Migration + + def self.up + begin + drop_table 'authors' + rescue + # table does not exist -> this is not an upgrade but a fresh install + end + + create_table 'authors' do |t| + t.column 'person_id', :integer, :null => false + t.column 'login', :string, :null => true, :limit => 100 + t.timestamps + end + end + +end -- 2.39.5