From dffb2a58206c68b7ae69cbcdebdfb7c30cdbf579 Mon Sep 17 00:00:00 2001 From: Simon Brandhof Date: Fri, 23 Dec 2011 12:27:39 +0100 Subject: SONAR-983 provide the component org.sonar.core.resource.ResourceIndexer that is a layer over ResourceIndexerDao + move derby SQL files to org.sonar.core.persistence --- .../org/sonar/batch/bootstrap/BootstrapModule.java | 2 + .../batch/index/DefaultResourcePersister.java | 8 +- .../batch/index/DefaultResourcePersisterTest.java | 14 +- .../sonar/batch/phases/UpdateStatusJobTest.java | 4 +- .../java/org/sonar/core/persistence/DdlUtils.java | 4 +- .../org/sonar/core/resource/ResourceIndexer.java | 74 +++ .../org/sonar/core/persistence/rows-derby.sql | 173 ++++++ .../org/sonar/core/persistence/schema-derby.ddl | 666 +++++++++++++++++++++ .../resources/org/sonar/persistence/rows-derby.sql | 173 ------ .../org/sonar/persistence/schema-derby.ddl | 666 --------------------- .../java/org/sonar/server/platform/Platform.java | 2 + .../org/sonar/server/startup/IndexProjects.java | 19 +- .../src/main/webapp/WEB-INF/db/migrate/README.txt | 2 +- .../sonar/server/startup/IndexProjectsTest.java | 21 +- 14 files changed, 948 insertions(+), 880 deletions(-) create mode 100644 sonar-core/src/main/java/org/sonar/core/resource/ResourceIndexer.java create mode 100644 sonar-core/src/main/resources/org/sonar/core/persistence/rows-derby.sql create mode 100644 sonar-core/src/main/resources/org/sonar/core/persistence/schema-derby.ddl delete mode 100644 sonar-core/src/main/resources/org/sonar/persistence/rows-derby.sql delete mode 100644 sonar-core/src/main/resources/org/sonar/persistence/schema-derby.ddl diff --git a/sonar-batch/src/main/java/org/sonar/batch/bootstrap/BootstrapModule.java b/sonar-batch/src/main/java/org/sonar/batch/bootstrap/BootstrapModule.java index 21f6824c713..b40aa67a45a 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/bootstrap/BootstrapModule.java +++ b/sonar-batch/src/main/java/org/sonar/batch/bootstrap/BootstrapModule.java @@ -27,6 +27,7 @@ import org.sonar.batch.MavenPluginExecutor; import org.sonar.batch.ServerMetadata; import org.sonar.batch.config.BatchSettings; import org.sonar.batch.config.BatchSettingsEnhancer; +import org.sonar.core.resource.ResourceIndexer; import org.sonar.jpa.session.DatabaseSessionProvider; import org.sonar.jpa.session.DefaultDatabaseConnector; import org.sonar.jpa.session.ThreadLocalDatabaseSessionFactory; @@ -66,6 +67,7 @@ public class BootstrapModule extends Module { addCoreSingleton(BatchDatabase.class); addCoreSingleton(MyBatis.class); + addCoreSingleton(ResourceIndexer.class); addCoreSingleton(DefaultDatabaseConnector.class); addCoreSingleton(ThreadLocalDatabaseSessionFactory.class); for (Class daoClass : DaoUtils.getDaoClasses()) { diff --git a/sonar-batch/src/main/java/org/sonar/batch/index/DefaultResourcePersister.java b/sonar-batch/src/main/java/org/sonar/batch/index/DefaultResourcePersister.java index a681b32dabf..5386b61414d 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/index/DefaultResourcePersister.java +++ b/sonar-batch/src/main/java/org/sonar/batch/index/DefaultResourcePersister.java @@ -27,6 +27,7 @@ import org.sonar.api.database.model.ResourceModel; import org.sonar.api.database.model.Snapshot; import org.sonar.api.resources.*; import org.sonar.api.utils.SonarException; +import org.sonar.core.resource.ResourceIndexer; import org.sonar.core.resource.ResourceIndexerDao; import javax.persistence.NonUniqueResultException; @@ -40,9 +41,9 @@ public final class DefaultResourcePersister implements ResourcePersister { private DatabaseSession session; private Map snapshotsByResource = Maps.newHashMap(); - private ResourceIndexerDao indexer; + private ResourceIndexer indexer; - public DefaultResourcePersister(DatabaseSession session, ResourceIndexerDao indexer) { + public DefaultResourcePersister(DatabaseSession session, ResourceIndexer indexer) { this.session = session; this.indexer = indexer; } @@ -126,15 +127,14 @@ public final class DefaultResourcePersister implements ResourcePersister { if (resource instanceof Project) { // should not occur, please use the method saveProject() snapshot = persistProject((Project) resource, project); - indexer.index(resource.getName(), snapshot.getQualifier(), snapshot.getResourceId(), snapshot.getRootProjectId()); } else if (resource instanceof Library) { snapshot = persistLibrary(project, (Library) resource); } else { snapshot = persistFileOrDirectory(project, resource, parent); - indexer.index(resource.getName(), snapshot.getQualifier(), snapshot.getResourceId(), snapshot.getRootProjectId()); } + indexer.index(resource.getName(), snapshot.getQualifier(), snapshot.getResourceId(), snapshot.getRootProjectId()); return snapshot; } diff --git a/sonar-batch/src/test/java/org/sonar/batch/index/DefaultResourcePersisterTest.java b/sonar-batch/src/test/java/org/sonar/batch/index/DefaultResourcePersisterTest.java index 7a7877287ea..35277ff3436 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/index/DefaultResourcePersisterTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/index/DefaultResourcePersisterTest.java @@ -26,7 +26,7 @@ import org.sonar.api.resources.JavaPackage; import org.sonar.api.resources.Library; import org.sonar.api.resources.Project; import org.sonar.jpa.test.AbstractDbUnitTestCase; -import org.sonar.core.resource.ResourceIndexerDao; +import org.sonar.core.resource.ResourceIndexer; import java.text.ParseException; import java.text.SimpleDateFormat; @@ -67,7 +67,7 @@ public class DefaultResourcePersisterTest extends AbstractDbUnitTestCase { public void shouldSaveNewProject() { setupData("shared"); - ResourcePersister persister = new DefaultResourcePersister(getSession(), mock(ResourceIndexerDao.class)); + ResourcePersister persister = new DefaultResourcePersister(getSession(), mock(ResourceIndexer.class)); persister.saveProject(singleProject, null); checkTables("shouldSaveNewProject", "projects", "snapshots"); @@ -77,7 +77,7 @@ public class DefaultResourcePersisterTest extends AbstractDbUnitTestCase { public void shouldSaveNewMultiModulesProject() throws ParseException { setupData("shared"); - ResourcePersister persister = new DefaultResourcePersister(getSession(), mock(ResourceIndexerDao.class)); + ResourcePersister persister = new DefaultResourcePersister(getSession(), mock(ResourceIndexer.class)); persister.saveProject(multiModuleProject, null); persister.saveProject(moduleA, multiModuleProject); persister.saveProject(moduleB, multiModuleProject); @@ -90,7 +90,7 @@ public class DefaultResourcePersisterTest extends AbstractDbUnitTestCase { public void shouldSaveNewDirectory() { setupData("shared"); - ResourcePersister persister = new DefaultResourcePersister(getSession(), mock(ResourceIndexerDao.class)); + ResourcePersister persister = new DefaultResourcePersister(getSession(), mock(ResourceIndexer.class)); persister.saveProject(singleProject, null); persister.saveResource(singleProject, new JavaPackage("org.foo").setEffectiveKey("foo:org.foo")); @@ -102,7 +102,7 @@ public class DefaultResourcePersisterTest extends AbstractDbUnitTestCase { public void shouldSaveNewLibrary() { setupData("shared"); - ResourcePersister persister = new DefaultResourcePersister(getSession(), mock(ResourceIndexerDao.class)); + ResourcePersister persister = new DefaultResourcePersister(getSession(), mock(ResourceIndexer.class)); persister.saveProject(singleProject, null); persister.saveResource(singleProject, new Library("junit:junit", "4.8.2").setEffectiveKey("junit:junit")); persister.saveResource(singleProject, new Library("junit:junit", "4.8.2").setEffectiveKey("junit:junit"));// do nothing, already saved @@ -115,7 +115,7 @@ public class DefaultResourcePersisterTest extends AbstractDbUnitTestCase { public void shouldClearResourcesExceptProjects() { setupData("shared"); - DefaultResourcePersister persister = new DefaultResourcePersister(getSession(), mock(ResourceIndexerDao.class)); + DefaultResourcePersister persister = new DefaultResourcePersister(getSession(), mock(ResourceIndexer.class)); persister.saveProject(multiModuleProject, null); persister.saveProject(moduleA, multiModuleProject); persister.saveResource(moduleA, new JavaPackage("org.foo").setEffectiveKey("a:org.foo")); @@ -131,7 +131,7 @@ public class DefaultResourcePersisterTest extends AbstractDbUnitTestCase { public void shouldUpdateExistingResource() { setupData("shouldUpdateExistingResource"); - ResourcePersister persister = new DefaultResourcePersister(getSession(), mock(ResourceIndexerDao.class)); + ResourcePersister persister = new DefaultResourcePersister(getSession(), mock(ResourceIndexer.class)); singleProject.setName("new name"); singleProject.setDescription("new description"); persister.saveProject(singleProject, null); diff --git a/sonar-batch/src/test/java/org/sonar/batch/phases/UpdateStatusJobTest.java b/sonar-batch/src/test/java/org/sonar/batch/phases/UpdateStatusJobTest.java index d7d211fab8d..21b784d1ff3 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/phases/UpdateStatusJobTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/phases/UpdateStatusJobTest.java @@ -24,8 +24,8 @@ import org.sonar.api.database.DatabaseSession; import org.sonar.api.database.model.Snapshot; import org.sonar.batch.ServerMetadata; import org.sonar.batch.index.DefaultResourcePersister; +import org.sonar.core.resource.ResourceIndexer; import org.sonar.jpa.test.AbstractDbUnitTestCase; -import org.sonar.core.resource.ResourceIndexerDao; import javax.persistence.Query; @@ -51,7 +51,7 @@ public class UpdateStatusJobTest extends AbstractDbUnitTestCase { private void assertAnalysis(int snapshotId, String fixture) { setupData("sharedFixture", fixture); DatabaseSession session = getSession(); - UpdateStatusJob sensor = new UpdateStatusJob(mock(ServerMetadata.class), session, new DefaultResourcePersister(session, mock(ResourceIndexerDao.class)), loadSnapshot(snapshotId)); + UpdateStatusJob sensor = new UpdateStatusJob(mock(ServerMetadata.class), session, new DefaultResourcePersister(session, mock(ResourceIndexer.class)), loadSnapshot(snapshotId)); sensor.execute(); getSession().stop(); diff --git a/sonar-core/src/main/java/org/sonar/core/persistence/DdlUtils.java b/sonar-core/src/main/java/org/sonar/core/persistence/DdlUtils.java index 95f42e51369..179f7648810 100644 --- a/sonar-core/src/main/java/org/sonar/core/persistence/DdlUtils.java +++ b/sonar-core/src/main/java/org/sonar/core/persistence/DdlUtils.java @@ -44,8 +44,8 @@ public final class DdlUtils { * The connection is commited in this method but not closed. */ public static void createSchema(Connection connection, String dialect) { - executeScript(connection, "org/sonar/persistence/schema-" + dialect + ".ddl"); - executeScript(connection, "org/sonar/persistence/rows-" + dialect + ".sql"); + executeScript(connection, "org/sonar/core/persistence/schema-" + dialect + ".ddl"); + executeScript(connection, "org/sonar/core/persistence/rows-" + dialect + ".sql"); } private static void executeScript(Connection connection, String path) { diff --git a/sonar-core/src/main/java/org/sonar/core/resource/ResourceIndexer.java b/sonar-core/src/main/java/org/sonar/core/resource/ResourceIndexer.java new file mode 100644 index 00000000000..32c8df9a261 --- /dev/null +++ b/sonar-core/src/main/java/org/sonar/core/resource/ResourceIndexer.java @@ -0,0 +1,74 @@ +/* + * Sonar, open source software quality management 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 + */ +package org.sonar.core.resource; + +import com.google.common.annotations.Beta; +import org.apache.commons.lang.ArrayUtils; +import org.sonar.api.BatchComponent; +import org.sonar.api.ServerComponent; +import org.sonar.api.resources.Qualifiers; +import org.sonar.api.resources.Scopes; + +/** + * This component will be automatically called in v3.0 when a resource is created or updated. + * It means that it will not be exposed to plugin API. + * + * @since 2.13 + */ +@Beta +public class ResourceIndexer implements BatchComponent, ServerComponent { + private ResourceIndexerDao dao; + + /** + * Hardcoded list of qualifiers to index. Need to be configurable. + * Directories and packages are explicitly excluded. + */ + private String[] INDEXABLE_QUALIFIERS = { + Qualifiers.VIEW, + Qualifiers.SUBVIEW, + Qualifiers.PROJECT, + Qualifiers.MODULE, + Qualifiers.FILE, + Qualifiers.CLASS, + Qualifiers.UNIT_TEST_FILE + }; + + public ResourceIndexer(ResourceIndexerDao dao) { + this.dao = dao; + } + + public ResourceIndexer index(String resourceName, String qualifier, int resourceId, int rootProjectId) { + if (ArrayUtils.contains(INDEXABLE_QUALIFIERS, qualifier)) { + dao.index(resourceName, qualifier, resourceId, rootProjectId); + } + return this; + } + + /** + * Used only for the migration from a version less than 2.13. + */ + public ResourceIndexer indexAll() { + ResourceIndexerFilter filter = ResourceIndexerFilter.create() + .setScopes(new String[]{Scopes.PROJECT, Scopes.FILE}) + .setQualifiers(INDEXABLE_QUALIFIERS); + dao.index(filter); + return this; + } +} 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 new file mode 100644 index 00000000000..2be852b3d1c --- /dev/null +++ b/sonar-core/src/main/resources/org/sonar/core/persistence/rows-derby.sql @@ -0,0 +1,173 @@ +-- Version 2.11 + +-- All the rows inserted during Rails migrations. Rows inserted during server startup tasks (Java) are excluded : rules, profiles, metrics, ... + +INSERT INTO ACTIVE_FILTERS(ID, FILTER_ID, USER_ID, ORDER_INDEX) VALUES (1, 1, null, 1); +INSERT INTO ACTIVE_FILTERS(ID, FILTER_ID, USER_ID, ORDER_INDEX) VALUES (2, 2, null, 2); +INSERT INTO ACTIVE_FILTERS(ID, FILTER_ID, USER_ID, ORDER_INDEX) VALUES (3, 3, null, 3); +ALTER TABLE ACTIVE_FILTERS ALTER COLUMN ID RESTART WITH 4; + +INSERT INTO CRITERIA(ID, FILTER_ID, FAMILY, KEE, OPERATOR, VALUE, TEXT_VALUE, VARIATION) VALUES (1, 1, 'qualifier', null, '=', null, 'TRK', null); +INSERT INTO CRITERIA(ID, FILTER_ID, FAMILY, KEE, OPERATOR, VALUE, TEXT_VALUE, VARIATION) VALUES (2, 2, 'qualifier', null, '=', null, 'TRK', null); +INSERT INTO CRITERIA(ID, FILTER_ID, FAMILY, KEE, OPERATOR, VALUE, TEXT_VALUE, VARIATION) VALUES (3, 3, 'qualifier', null, '=', null, 'VW,SVW,TRK,BRC,DIR,PAC,FIL,CLA,UTS,LIB', null); +ALTER TABLE CRITERIA ALTER COLUMN ID RESTART WITH 4; + +INSERT INTO FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (1, 1, 'metric', 'alert_status', null, 1, null); +INSERT INTO FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (2, 1, 'name', null, 'ASC', 2, null); +INSERT INTO FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (3, 1, 'version', null, null, 3, null); +INSERT INTO FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (4, 1, 'metric', 'ncloc', null, 4, null); +INSERT INTO FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (5, 1, 'metric', 'violations_density', null, 5, null); +INSERT INTO FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (6, 1, 'date', null, null, 6, null); +INSERT INTO FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (7, 1, 'links', null, null, 7, null); +INSERT INTO FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (8, 2, 'name', null, 'ASC', 1, null); +INSERT INTO FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (9, 2, 'metric', 'ncloc', null, 2, null); +INSERT INTO FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (10, 2, 'metric', 'violations_density', null, 3, null); +INSERT INTO FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (11, 3, 'metric', 'alert_status', null, 1, null); +INSERT INTO FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (12, 3, 'name', null, 'ASC', 2, null); +INSERT INTO FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (13, 3, 'metric', 'ncloc', null, 3, null); +INSERT INTO FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (14, 3, 'metric', 'violations_density', null, 4, null); +INSERT INTO FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (15, 3, 'date', null, null, 5, null); +ALTER TABLE FILTER_COLUMNS ALTER COLUMN ID RESTART WITH 16; + +INSERT INTO FILTERS(ID, NAME, USER_ID, SHARED, FAVOURITES, RESOURCE_ID, DEFAULT_VIEW, PAGE_SIZE, PERIOD_INDEX) VALUES (1, 'Projects', null, true, false, null, 'list', null, null); +INSERT INTO FILTERS(ID, NAME, USER_ID, SHARED, FAVOURITES, RESOURCE_ID, DEFAULT_VIEW, PAGE_SIZE, PERIOD_INDEX) VALUES (2, 'Treemap', null, true, false, null, 'treemap', null, null); +INSERT INTO FILTERS(ID, NAME, USER_ID, SHARED, FAVOURITES, RESOURCE_ID, DEFAULT_VIEW, PAGE_SIZE, PERIOD_INDEX) VALUES (3, 'My favourites', null, true, true, null, 'list', null, null); +ALTER TABLE FILTERS ALTER COLUMN ID RESTART WITH 4; + +INSERT INTO GROUP_ROLES(ID, GROUP_ID, RESOURCE_ID, ROLE) VALUES (1, 1, null, 'admin'); +INSERT INTO GROUP_ROLES(ID, GROUP_ID, RESOURCE_ID, ROLE) VALUES (2, 1, null, 'default-admin'); +INSERT INTO GROUP_ROLES(ID, GROUP_ID, RESOURCE_ID, ROLE) VALUES (3, 2, null, 'default-user'); +INSERT INTO GROUP_ROLES(ID, GROUP_ID, RESOURCE_ID, ROLE) VALUES (4, null, null, 'default-user'); +INSERT INTO GROUP_ROLES(ID, GROUP_ID, RESOURCE_ID, ROLE) VALUES (5, 2, null, 'default-codeviewer'); +INSERT INTO GROUP_ROLES(ID, GROUP_ID, RESOURCE_ID, ROLE) VALUES (6, null, null, 'default-codeviewer'); +ALTER TABLE GROUP_ROLES ALTER COLUMN ID RESTART WITH 7; + +INSERT INTO GROUPS(ID, NAME, DESCRIPTION, CREATED_AT, UPDATED_AT) VALUES (1, 'sonar-administrators', 'System administrators', '2011-09-26 22:27:51.0', '2011-09-26 22:27:51.0'); +INSERT INTO GROUPS(ID, NAME, DESCRIPTION, CREATED_AT, UPDATED_AT) VALUES (2, 'sonar-users', 'Any new users created will automatically join this group', '2011-09-26 22:27:51.0', '2011-09-26 22:27:51.0'); +ALTER TABLE GROUPS ALTER COLUMN ID RESTART WITH 3; + +INSERT INTO GROUPS_USERS(USER_ID, GROUP_ID) VALUES (1, 1); +INSERT INTO GROUPS_USERS(USER_ID, GROUP_ID) VALUES (1, 2); + +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('1'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('2'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('10'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('11'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('13'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('14'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('16'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('35'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('36'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('39'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('41'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('46'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('48'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('49'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('51'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('52'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('53'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('54'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('55'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('57'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('58'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('59'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('60'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('61'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('62'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('66'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('68'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('69'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('72'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('73'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('75'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('76'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('77'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('78'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('79'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('80'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('81'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('82'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('84'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('85'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('86'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('87'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('88'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('89'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('90'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('91'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('92'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('93'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('94'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('95'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('96'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('97'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('98'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('99'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('100'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('101'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('110'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('111'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('112'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('113'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('114'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('115'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('116'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('117'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('118'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('119'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('120'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('131'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('132'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('133'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('134'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('135'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('136'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('137'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('138'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('139'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('140'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('141'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('142'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('150'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('151'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('160'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('162'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('163'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('165'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('166'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('167'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('168'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('169'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('170'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('180'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('181'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('190'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('191'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('200'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('201'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('202'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('203'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('210'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('211'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('212'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('213'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('214'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('215'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('216'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('217'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('220'); +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 SCHEMA_MIGRATIONS(VERSION) VALUES ('233'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('234'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('235'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('236'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('237'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('238'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('239'); + +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 new file mode 100644 index 00000000000..b01f46b5494 --- /dev/null +++ b/sonar-core/src/main/resources/org/sonar/core/persistence/schema-derby.ddl @@ -0,0 +1,666 @@ +-- Structure of version 2.11 + +-- This file has been generated manually : +-- 1. start sonar with property sonar.useStructureDump=false +-- 2. execute $DERBY_HOME/bin/dblook -d 'jdbc:derby://localhost:1527/sonar;user=sonar;password=sonar' -o /derby.ddl +-- 3. copy the generated derby.ddl into this file + +CREATE TABLE "QUALITY_MODELS" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "NAME" VARCHAR(100) +); + +CREATE TABLE "GROUPS_USERS" ( + "USER_ID" INTEGER, + "GROUP_ID" INTEGER +); + +CREATE TABLE "CHARACTERISTIC_EDGES" ( + "CHILD_ID" INTEGER, + "PARENT_ID" INTEGER +); + +CREATE TABLE "CRITERIA" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "FILTER_ID" INTEGER, + "FAMILY" VARCHAR(100), + "KEE" VARCHAR(100), + "OPERATOR" VARCHAR(20), + "VALUE" DECIMAL(30,20), + "TEXT_VALUE" VARCHAR(256), + "VARIATION" BOOLEAN +); + +CREATE TABLE "DEPENDENCIES" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "FROM_SNAPSHOT_ID" INTEGER, + "FROM_RESOURCE_ID" INTEGER, + "TO_SNAPSHOT_ID" INTEGER, + "TO_RESOURCE_ID" INTEGER, + "DEP_USAGE" VARCHAR(30), + "DEP_WEIGHT" INTEGER, + "PROJECT_SNAPSHOT_ID" INTEGER, + "PARENT_DEPENDENCY_ID" BIGINT, + "FROM_SCOPE" VARCHAR(3), + "TO_SCOPE" VARCHAR(3) +); + +CREATE TABLE "CHARACTERISTICS" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "QUALITY_MODEL_ID" INTEGER, + "KEE" VARCHAR(100), + "NAME" VARCHAR(100), + "RULE_ID" INTEGER, + "DEPTH" INTEGER, + "CHARACTERISTIC_ORDER" INTEGER, + "DESCRIPTION" VARCHAR(4000), + "ENABLED" BOOLEAN +); + +CREATE TABLE "RULES_PARAMETERS" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "RULE_ID" INTEGER NOT NULL, + "NAME" VARCHAR(128) NOT NULL, + "PARAM_TYPE" VARCHAR(512) NOT NULL, + "DEFAULT_VALUE" VARCHAR(4000), + "DESCRIPTION" VARCHAR(4000) +); + +CREATE TABLE "RULES_PROFILES" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "NAME" VARCHAR(100) NOT NULL, + "DEFAULT_PROFILE" BOOLEAN DEFAULT FALSE, + "PROVIDED" BOOLEAN NOT NULL DEFAULT FALSE, + "LANGUAGE" VARCHAR(16), + "PARENT_NAME" VARCHAR(100), + "ENABLED" BOOLEAN NOT NULL DEFAULT TRUE, + "VERSION" INTEGER DEFAULT 1, + "USED_PROFILE" BOOLEAN DEFAULT FALSE +); + +CREATE TABLE "WIDGETS" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "DASHBOARD_ID" INTEGER NOT NULL, + "WIDGET_KEY" VARCHAR(256) NOT NULL, + "NAME" VARCHAR(256), + "DESCRIPTION" VARCHAR(1000), + "COLUMN_INDEX" INTEGER, + "ROW_INDEX" INTEGER, + "CONFIGURED" BOOLEAN, + "CREATED_AT" TIMESTAMP, + "UPDATED_AT" TIMESTAMP +); + +CREATE TABLE "FILTER_COLUMNS" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "FILTER_ID" INTEGER, + "FAMILY" VARCHAR(100), + "KEE" VARCHAR(100), + "SORT_DIRECTION" VARCHAR(5), + "ORDER_INDEX" INTEGER, + "VARIATION" BOOLEAN +); + +CREATE TABLE "MEASURE_DATA" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "MEASURE_ID" INTEGER, + "SNAPSHOT_ID" INTEGER, + "DATA" BLOB(2147483647) +); + +CREATE TABLE "GROUPS" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "NAME" VARCHAR(40), + "DESCRIPTION" VARCHAR(200), + "CREATED_AT" TIMESTAMP, + "UPDATED_AT" TIMESTAMP +); + +CREATE TABLE "ACTIVE_RULE_PARAM_CHANGES" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "ACTIVE_RULE_CHANGE_ID" INTEGER NOT NULL, + "RULES_PARAMETER_ID" INTEGER NOT NULL, + "OLD_VALUE" VARCHAR(4000), + "NEW_VALUE" VARCHAR(4000) +); + +CREATE TABLE "SNAPSHOTS" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "CREATED_AT" TIMESTAMP, + "PROJECT_ID" INTEGER NOT NULL, + "PARENT_SNAPSHOT_ID" INTEGER, + "STATUS" VARCHAR(4) NOT NULL DEFAULT 'U', + "ISLAST" BOOLEAN NOT NULL DEFAULT FALSE, + "SCOPE" VARCHAR(3), + "QUALIFIER" VARCHAR(10), + "ROOT_SNAPSHOT_ID" INTEGER, + "VERSION" VARCHAR(60), + "PATH" VARCHAR(96), + "DEPTH" INTEGER, + "ROOT_PROJECT_ID" INTEGER, + "PERIOD1_MODE" VARCHAR(100), + "PERIOD1_PARAM" VARCHAR(100), + "PERIOD1_DATE" TIMESTAMP, + "PERIOD2_MODE" VARCHAR(100), + "PERIOD2_PARAM" VARCHAR(100), + "PERIOD2_DATE" TIMESTAMP, + "PERIOD3_MODE" VARCHAR(100), + "PERIOD3_PARAM" VARCHAR(100), + "PERIOD3_DATE" TIMESTAMP, + "PERIOD4_MODE" VARCHAR(100), + "PERIOD4_PARAM" VARCHAR(100), + "PERIOD4_DATE" TIMESTAMP, + "PERIOD5_MODE" VARCHAR(100), + "PERIOD5_PARAM" VARCHAR(100), + "PERIOD5_DATE" TIMESTAMP +); + +CREATE TABLE "SCHEMA_MIGRATIONS" ( +"VERSION" VARCHAR(256) NOT NULL +); + +CREATE TABLE "GROUP_ROLES" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "GROUP_ID" INTEGER, + "RESOURCE_ID" INTEGER, + "ROLE" VARCHAR(64) NOT NULL +); + +CREATE TABLE "RULES" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "PLUGIN_RULE_KEY" VARCHAR(200) NOT NULL, + "PLUGIN_NAME" VARCHAR(255) NOT NULL, + "DESCRIPTION" CLOB(2147483647), + "PRIORITY" INTEGER, + "ENABLED" BOOLEAN, + "CARDINALITY" VARCHAR(10), + "PARENT_ID" INTEGER, + "PLUGIN_CONFIG_KEY" VARCHAR(500), + "NAME" VARCHAR(200) +); + +CREATE TABLE "WIDGET_PROPERTIES" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "WIDGET_ID" INTEGER NOT NULL, + "KEE" VARCHAR(100), + "TEXT_VALUE" VARCHAR(4000) +); + +CREATE TABLE "EVENTS" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "NAME" VARCHAR(400), + "RESOURCE_ID" INTEGER, + "SNAPSHOT_ID" INTEGER, + "CATEGORY" VARCHAR(50), + "EVENT_DATE" TIMESTAMP, + "CREATED_AT" TIMESTAMP, + "DESCRIPTION" VARCHAR(4000) +); + +CREATE TABLE "ALERTS" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "PROFILE_ID" INTEGER, + "METRIC_ID" INTEGER, + "OPERATOR" VARCHAR(3), + "VALUE_ERROR" VARCHAR(64), + "VALUE_WARNING" VARCHAR(64) +); + +CREATE TABLE "PROPERTIES" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "PROP_KEY" VARCHAR(512), + "RESOURCE_ID" INTEGER, + "TEXT_VALUE" CLOB(2147483647), + "USER_ID" INTEGER +); + +CREATE TABLE "PROJECT_LINKS" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "PROJECT_ID" INTEGER NOT NULL, + "LINK_TYPE" VARCHAR(20), + "NAME" VARCHAR(128), + "HREF" VARCHAR(2048) NOT NULL +); + +CREATE TABLE "DUPLICATIONS_INDEX" ( + "PROJECT_SNAPSHOT_ID" INTEGER NOT NULL, + "SNAPSHOT_ID" INTEGER NOT NULL, + "HASH" VARCHAR(50) NOT NULL, + "INDEX_IN_FILE" INTEGER NOT NULL, + "START_LINE" INTEGER NOT NULL, + "END_LINE" INTEGER NOT NULL +); + +CREATE TABLE "REVIEW_COMMENTS" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "CREATED_AT" TIMESTAMP, + "UPDATED_AT" TIMESTAMP, + "REVIEW_ID" INTEGER, + "USER_ID" INTEGER, + "REVIEW_TEXT" CLOB(2147483647) +); + +CREATE TABLE "ACTIVE_RULE_CHANGES" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "USER_NAME" VARCHAR(200) NOT NULL, + "PROFILE_ID" INTEGER NOT NULL, + "PROFILE_VERSION" INTEGER NOT NULL, + "RULE_ID" INTEGER NOT NULL, + "CHANGE_DATE" TIMESTAMP NOT NULL, + "ENABLED" BOOLEAN, + "OLD_SEVERITY" INTEGER, + "NEW_SEVERITY" INTEGER +); + +CREATE TABLE "PROJECT_MEASURES" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "VALUE" DECIMAL(30,20), + "METRIC_ID" INTEGER NOT NULL, + "SNAPSHOT_ID" INTEGER, + "RULE_ID" INTEGER, + "RULES_CATEGORY_ID" INTEGER, + "TEXT_VALUE" VARCHAR(96), + "TENDENCY" INTEGER, + "MEASURE_DATE" TIMESTAMP, + "PROJECT_ID" INTEGER, + "ALERT_STATUS" VARCHAR(5), + "ALERT_TEXT" VARCHAR(4000), + "URL" VARCHAR(2000), + "DESCRIPTION" VARCHAR(4000), + "RULE_PRIORITY" INTEGER, + "CHARACTERISTIC_ID" INTEGER, + "VARIATION_VALUE_1" DECIMAL(30,20), + "VARIATION_VALUE_2" DECIMAL(30,20), + "VARIATION_VALUE_3" DECIMAL(30,20), + "VARIATION_VALUE_4" DECIMAL(30,20), + "VARIATION_VALUE_5" DECIMAL(30,20) +); + +CREATE TABLE "SNAPSHOT_SOURCES" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "SNAPSHOT_ID" INTEGER NOT NULL, + "DATA" CLOB(2147483647) +); + +CREATE TABLE "PROJECTS" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "NAME" VARCHAR(256), + "DESCRIPTION" VARCHAR(2000), + "ENABLED" BOOLEAN NOT NULL DEFAULT TRUE, + "SCOPE" VARCHAR(3), + "QUALIFIER" VARCHAR(10), + "KEE" VARCHAR(400), + "ROOT_ID" INTEGER, + "PROFILE_ID" INTEGER, + "LANGUAGE" VARCHAR(5), + "COPY_RESOURCE_ID" INTEGER, + "LONG_NAME" VARCHAR(256) +); + +CREATE TABLE "REVIEWS" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "CREATED_AT" TIMESTAMP, + "UPDATED_AT" TIMESTAMP, + "USER_ID" INTEGER, + "ASSIGNEE_ID" INTEGER, + "TITLE" VARCHAR(500), + "STATUS" VARCHAR(10), + "SEVERITY" VARCHAR(10), + "RULE_FAILURE_PERMANENT_ID" INTEGER, + "PROJECT_ID" INTEGER, + "RESOURCE_ID" INTEGER, + "RESOURCE_LINE" INTEGER, + "RESOLUTION" VARCHAR(200), + "RULE_ID" INTEGER, + "MANUAL_VIOLATION" BOOLEAN, + "MANUAL_SEVERITY" BOOLEAN +); + +CREATE TABLE "RULES_CATEGORIES" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "NAME" VARCHAR(255) NOT NULL, + "DESCRIPTION" VARCHAR(1000) NOT NULL +); + +CREATE TABLE "ACTIVE_FILTERS" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "FILTER_ID" INTEGER, + "USER_ID" INTEGER, + "ORDER_INDEX" INTEGER +); + +CREATE TABLE "MANUAL_MEASURES" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "METRIC_ID" INTEGER NOT NULL, + "RESOURCE_ID" INTEGER, + "VALUE" DECIMAL(30,20), + "TEXT_VALUE" VARCHAR(4000), + "USER_LOGIN" VARCHAR(40), + "DESCRIPTION" VARCHAR(4000), + "CREATED_AT" TIMESTAMP, + "UPDATED_AT" TIMESTAMP +); + +CREATE TABLE "ACTIVE_RULES" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "PROFILE_ID" INTEGER NOT NULL, + "RULE_ID" INTEGER NOT NULL, + "FAILURE_LEVEL" INTEGER NOT NULL, + "INHERITANCE" VARCHAR(10) +); + +CREATE TABLE "NOTIFICATIONS" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "CREATED_AT" TIMESTAMP, + "DATA" BLOB(2147483647) +); + +CREATE TABLE "USER_ROLES" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "USER_ID" INTEGER, + "RESOURCE_ID" INTEGER, + "ROLE" VARCHAR(64) NOT NULL +); + +CREATE TABLE "ACTIVE_DASHBOARDS" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "DASHBOARD_ID" INTEGER NOT NULL, + "USER_ID" INTEGER, + "ORDER_INDEX" INTEGER +); + +CREATE TABLE "ACTIVE_RULE_PARAMETERS" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "ACTIVE_RULE_ID" INTEGER NOT NULL, + "RULES_PARAMETER_ID" INTEGER NOT NULL, + "VALUE" VARCHAR(4000) +); + +CREATE TABLE "CHARACTERISTIC_PROPERTIES" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "CHARACTERISTIC_ID" INTEGER, + "KEE" VARCHAR(100), + "VALUE" DECIMAL(30,20), + "TEXT_VALUE" VARCHAR(4000) +); + +CREATE TABLE "USERS" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "LOGIN" VARCHAR(40), + "NAME" VARCHAR(200), + "EMAIL" VARCHAR(100), + "CRYPTED_PASSWORD" VARCHAR(40), + "SALT" VARCHAR(40), + "CREATED_AT" TIMESTAMP, + "UPDATED_AT" TIMESTAMP, + "REMEMBER_TOKEN" VARCHAR(500), + "REMEMBER_TOKEN_EXPIRES_AT" TIMESTAMP +); + +CREATE TABLE "FILTERS" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "NAME" VARCHAR(100), + "USER_ID" INTEGER, + "SHARED" BOOLEAN, + "FAVOURITES" BOOLEAN, + "RESOURCE_ID" INTEGER, + "DEFAULT_VIEW" VARCHAR(20), + "PAGE_SIZE" INTEGER, + "PERIOD_INDEX" INTEGER +); + +CREATE TABLE "DASHBOARDS" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "USER_ID" INTEGER, + "NAME" VARCHAR(256), + "DESCRIPTION" VARCHAR(1000), + "COLUMN_LAYOUT" VARCHAR(20), + "SHARED" BOOLEAN, + "CREATED_AT" TIMESTAMP, + "UPDATED_AT" TIMESTAMP +); + +CREATE TABLE "RULE_FAILURES" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "SNAPSHOT_ID" INTEGER NOT NULL, + "RULE_ID" INTEGER NOT NULL, + "FAILURE_LEVEL" INTEGER NOT NULL, + "MESSAGE" VARCHAR(4000), + "LINE" INTEGER, + "COST" DECIMAL(30,20), + "CREATED_AT" TIMESTAMP, + "CHECKSUM" VARCHAR(1000), + "PERMANENT_ID" INTEGER, + "SWITCHED_OFF" BOOLEAN, + "COMMITTER" VARCHAR(100) +); + +CREATE TABLE "METRICS" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "NAME" VARCHAR(64) NOT NULL, + "DESCRIPTION" VARCHAR(255), + "DIRECTION" INTEGER NOT NULL DEFAULT 0, + "DOMAIN" VARCHAR(64), + "SHORT_NAME" VARCHAR(64), + "QUALITATIVE" BOOLEAN NOT NULL DEFAULT FALSE, + "VAL_TYPE" VARCHAR(8), + "USER_MANAGED" BOOLEAN DEFAULT FALSE, + "ENABLED" BOOLEAN DEFAULT TRUE, + "ORIGIN" VARCHAR(3), + "WORST_VALUE" DECIMAL(30,20), + "BEST_VALUE" DECIMAL(30,20), + "OPTIMIZED_BEST_VALUE" BOOLEAN, + "HIDDEN" BOOLEAN +); + +CREATE TABLE "LOADED_TEMPLATES" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "KEE" VARCHAR(200), + "TEMPLATE_TYPE" VARCHAR(15) +); + +CREATE TABLE "RESOURCE_INDEX" ( + "KEE" VARCHAR(400) NOT NULL, + "POSITION" INTEGER NOT NULL, + "NAME_SIZE" INTEGER NOT NULL, + "RESOURCE_ID" INTEGER NOT NULL, + "ROOT_PROJECT_ID" INTEGER NOT NULL, + "QUALIFIER" VARCHAR(10) NOT NULL +); + +CREATE TABLE "ACTION_PLANS" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "USER_ID" INTEGER, + "NAME" VARCHAR(200), + "DESCRIPTION" VARCHAR(1000), + "DEAD_LINE" TIMESTAMP, + "USER_LOGIN" VARCHAR(40), + "PROJECT_ID" INTEGER, + "STATUS" VARCHAR(10), + "CREATED_AT" TIMESTAMP, + "UPDATED_AT" TIMESTAMP +); + +CREATE TABLE "ACTION_PLANS_REVIEWS" ( + "ACTION_PLAN_ID" INTEGER, + "REVIEW_ID" INTEGER +); + + +-- ---------------------------------------------- +-- DDL Statements for indexes +-- ---------------------------------------------- + +CREATE INDEX "GROUP_ROLES_RESOURCE" ON "GROUP_ROLES" ("RESOURCE_ID"); + +CREATE INDEX "GROUP_ROLES_GROUP" ON "GROUP_ROLES" ("GROUP_ID"); + +CREATE INDEX "USER_ROLES_RESOURCE" ON "USER_ROLES" ("RESOURCE_ID"); + +CREATE INDEX "USER_ROLES_USER" ON "USER_ROLES" ("USER_ID"); + +CREATE INDEX "DUPLICATIONS_INDEX_HASH" ON "DUPLICATIONS_INDEX" ("HASH"); + +CREATE INDEX "DUPLICATIONS_INDEX_SID" ON "DUPLICATIONS_INDEX" ("SNAPSHOT_ID"); + +CREATE INDEX "DUPLICATIONS_INDEX_PSID" ON "DUPLICATIONS_INDEX" ("PROJECT_SNAPSHOT_ID"); + +CREATE INDEX "SNAP_SOURCES_SNAPSHOT_ID" ON "SNAPSHOT_SOURCES" ("SNAPSHOT_ID"); + +CREATE INDEX "INDEX_GROUPS_USERS_ON_GROUP_ID" ON "GROUPS_USERS" ("GROUP_ID"); + +CREATE INDEX "INDEX_GROUPS_USERS_ON_USER_ID" ON "GROUPS_USERS" ("USER_ID"); + +CREATE INDEX "DEPS_TO_SID" ON "DEPENDENCIES" ("TO_SNAPSHOT_ID"); + +CREATE INDEX "DEPS_FROM_SID" ON "DEPENDENCIES" ("FROM_SNAPSHOT_ID"); + +CREATE INDEX "DEPS_PRJ_SID" ON "DEPENDENCIES" ("PROJECT_SNAPSHOT_ID"); + +CREATE INDEX "MEASURES_SID_METRIC" ON "PROJECT_MEASURES" ("SNAPSHOT_ID", "METRIC_ID"); + +CREATE INDEX "ACTIVE_RULE_CHANGES_PID" ON "ACTIVE_RULE_CHANGES" ("PROFILE_ID"); + +CREATE INDEX "CHARACTERISTIC_PROPERTIES_CID" ON "CHARACTERISTIC_PROPERTIES" ("CHARACTERISTIC_ID"); + +CREATE UNIQUE INDEX "METRICS_UNIQUE_NAME" ON "METRICS" ("NAME"); + +CREATE INDEX "ACTIVE_RULE_PARAM_CHANGES_CID" ON "ACTIVE_RULE_PARAM_CHANGES" ("ACTIVE_RULE_CHANGE_ID"); + +CREATE INDEX "M_DATA_SID" ON "MEASURE_DATA" ("SNAPSHOT_ID"); + +CREATE INDEX "MEASURE_DATA_MEASURE_ID" ON "MEASURE_DATA" ("MEASURE_ID"); + +CREATE INDEX "RF_PERMANENT_ID" ON "RULE_FAILURES" ("PERMANENT_ID"); + +CREATE INDEX "RULE_FAILURE_RULE_ID" ON "RULE_FAILURES" ("RULE_ID"); + +CREATE INDEX "RULE_FAILURE_SNAPSHOT_ID" ON "RULE_FAILURES" ("SNAPSHOT_ID"); + +CREATE INDEX "EVENTS_SNAPSHOT_ID" ON "EVENTS" ("SNAPSHOT_ID"); + +CREATE INDEX "EVENTS_RESOURCE_ID" ON "EVENTS" ("RESOURCE_ID"); + +CREATE INDEX "WIDGETS_WIDGETKEY" ON "WIDGETS" ("WIDGET_KEY"); + +CREATE INDEX "WIDGETS_DASHBOARDS" ON "WIDGETS" ("DASHBOARD_ID"); + +CREATE INDEX "SNAPSHOTS_QUALIFIER" ON "SNAPSHOTS" ("QUALIFIER"); + +CREATE INDEX "SNAPSHOTS_ROOT" ON "SNAPSHOTS" ("ROOT_SNAPSHOT_ID"); + +CREATE INDEX "SNAPSHOTS_PARENT" ON "SNAPSHOTS" ("PARENT_SNAPSHOT_ID"); + +CREATE INDEX "SNAPSHOT_PROJECT_ID" ON "SNAPSHOTS" ("PROJECT_ID"); + +CREATE INDEX "RULES_PARAMETERS_RULE_ID" ON "RULES_PARAMETERS" ("RULE_ID"); + +CREATE INDEX "ACTIVE_DASHBOARDS_DASHBOARDID" ON "ACTIVE_DASHBOARDS" ("DASHBOARD_ID"); + +CREATE INDEX "ACTIVE_DASHBOARDS_USERID" ON "ACTIVE_DASHBOARDS" ("USER_ID"); + +CREATE UNIQUE INDEX "UNIQUE_SCHEMA_MIGRATIONS" ON "SCHEMA_MIGRATIONS" ("VERSION"); + +CREATE INDEX "WIDGET_PROPERTIES_WIDGETS" ON "WIDGET_PROPERTIES" ("WIDGET_ID"); + +CREATE INDEX "PROPERTIES_KEY" ON "PROPERTIES" ("PROP_KEY"); + +CREATE INDEX "MANUAL_MEASURES_RESOURCE_ID" ON "MANUAL_MEASURES" ("RESOURCE_ID"); + +CREATE INDEX "PROJECTS_KEE" ON "PROJECTS" ("KEE"); + +CREATE INDEX "RESOURCE_INDEX_KEE" ON "RESOURCE_INDEX" ("KEE"); + +CREATE INDEX "INDEX_ACTION_PLANS_ON_PROJET_ID" ON "ACTION_PLANS" ("PROJECT_ID"); + +CREATE INDEX "INDEX_ACTION_PLANS_REVIEWS_ON_ACTION_PLAN_ID" ON "ACTION_PLANS_REVIEWS" ("ACTION_PLAN_ID"); + +CREATE INDEX "INDEX_ACTION_PLANS_REVIEWS_ON_REVIEW_ID" ON "ACTION_PLANS_REVIEWS" ("REVIEW_ID"); + + +-- ---------------------------------------------- +-- DDL Statements for keys +-- ---------------------------------------------- + +-- primary/unique +ALTER TABLE "GROUP_ROLES" ADD CONSTRAINT "SQL110927104437910" PRIMARY KEY ("ID"); + +ALTER TABLE "REVIEWS" ADD CONSTRAINT "SQL110927104440700" PRIMARY KEY ("ID"); + +ALTER TABLE "RULES" ADD CONSTRAINT "SQL110927104437080" PRIMARY KEY ("ID"); + +ALTER TABLE "USER_ROLES" ADD CONSTRAINT "SQL110927104437940" PRIMARY KEY ("ID"); + +ALTER TABLE "SNAPSHOT_SOURCES" ADD CONSTRAINT "SQL110927104437590" PRIMARY KEY ("ID"); + +ALTER TABLE "NOTIFICATIONS" ADD CONSTRAINT "SQL110927104441030" PRIMARY KEY ("ID"); + +ALTER TABLE "RULES_CATEGORIES" ADD CONSTRAINT "SQL110927104437060" PRIMARY KEY ("ID"); + +ALTER TABLE "DEPENDENCIES" ADD CONSTRAINT "SQL110927104438330" PRIMARY KEY ("ID"); + +ALTER TABLE "PROJECT_MEASURES" ADD CONSTRAINT "SQL110927104437040" PRIMARY KEY ("ID"); + +ALTER TABLE "ACTIVE_RULE_CHANGES" ADD CONSTRAINT "SQL110927104440770" PRIMARY KEY ("ID"); + +ALTER TABLE "CHARACTERISTIC_PROPERTIES" ADD CONSTRAINT "SQL110927104439660" PRIMARY KEY ("ID"); + +ALTER TABLE "QUALITY_MODELS" ADD CONSTRAINT "SQL110927104439440" PRIMARY KEY ("ID"); + +ALTER TABLE "USERS" ADD CONSTRAINT "SQL110927104437310" PRIMARY KEY ("ID"); + +ALTER TABLE "CRITERIA" ADD CONSTRAINT "SQL110927104438720" PRIMARY KEY ("ID"); + +ALTER TABLE "METRICS" ADD CONSTRAINT "SQL110927104436990" PRIMARY KEY ("ID"); + +ALTER TABLE "ACTIVE_RULE_PARAM_CHANGES" ADD CONSTRAINT "SQL110927104440790" PRIMARY KEY ("ID"); + +ALTER TABLE "MEASURE_DATA" ADD CONSTRAINT "SQL110927104437810" PRIMARY KEY ("ID"); + +ALTER TABLE "RULE_FAILURES" ADD CONSTRAINT "SQL110927104437100" PRIMARY KEY ("ID"); + +ALTER TABLE "EVENTS" ADD CONSTRAINT "SQL110927104437690" PRIMARY KEY ("ID"); + +ALTER TABLE "WIDGETS" ADD CONSTRAINT "SQL110927104439750" PRIMARY KEY ("ID"); + +ALTER TABLE "SNAPSHOTS" ADD CONSTRAINT "SQL110927104436960" PRIMARY KEY ("ID"); + +ALTER TABLE "ACTIVE_RULES" ADD CONSTRAINT "SQL110927104437550" PRIMARY KEY ("ID"); + +ALTER TABLE "CHARACTERISTICS" ADD CONSTRAINT "SQL110927104439450" PRIMARY KEY ("ID"); + +ALTER TABLE "RULES_PARAMETERS" ADD CONSTRAINT "SQL110927104437130" PRIMARY KEY ("ID"); + +ALTER TABLE "ACTIVE_FILTERS" ADD CONSTRAINT "SQL110927104438740" PRIMARY KEY ("ID"); + +ALTER TABLE "ACTIVE_DASHBOARDS" ADD CONSTRAINT "SQL110927104439710" PRIMARY KEY ("ID"); + +ALTER TABLE "FILTER_COLUMNS" ADD CONSTRAINT "SQL110927104438710" PRIMARY KEY ("ID"); + +ALTER TABLE "REVIEW_COMMENTS" ADD CONSTRAINT "SQL110927104440710" PRIMARY KEY ("ID"); + +ALTER TABLE "WIDGET_PROPERTIES" ADD CONSTRAINT "SQL110927104439770" PRIMARY KEY ("ID"); + +ALTER TABLE "PROPERTIES" ADD CONSTRAINT "SQL110927104437750" PRIMARY KEY ("ID"); + +ALTER TABLE "DASHBOARDS" ADD CONSTRAINT "SQL110927104439740" PRIMARY KEY ("ID"); + +ALTER TABLE "GROUPS" ADD CONSTRAINT "SQL110927104437850" PRIMARY KEY ("ID"); + +ALTER TABLE "PROJECT_LINKS" ADD CONSTRAINT "SQL110927104437150" PRIMARY KEY ("ID"); + +ALTER TABLE "FILTERS" ADD CONSTRAINT "SQL110927104438690" PRIMARY KEY ("ID"); + +ALTER TABLE "MANUAL_MEASURES" ADD CONSTRAINT "SQL110927104440930" PRIMARY KEY ("ID"); + +ALTER TABLE "ALERTS" ADD CONSTRAINT "SQL110927104437730" PRIMARY KEY ("ID"); + +ALTER TABLE "PROJECTS" ADD CONSTRAINT "SQL110927104436930" PRIMARY KEY ("ID"); + +ALTER TABLE "RULES_PROFILES" ADD CONSTRAINT "SQL110927104437540" PRIMARY KEY ("ID"); + +ALTER TABLE "ACTIVE_RULE_PARAMETERS" ADD CONSTRAINT "SQL110927104437560" PRIMARY KEY ("ID"); + +ALTER TABLE "LOADED_TEMPLATES" ADD CONSTRAINT "SQL110927104437650" PRIMARY KEY ("ID"); + +ALTER TABLE "ACTION_PLANS" ADD CONSTRAINT "SQL110927104447650" PRIMARY KEY ("ID"); diff --git a/sonar-core/src/main/resources/org/sonar/persistence/rows-derby.sql b/sonar-core/src/main/resources/org/sonar/persistence/rows-derby.sql deleted file mode 100644 index 2be852b3d1c..00000000000 --- a/sonar-core/src/main/resources/org/sonar/persistence/rows-derby.sql +++ /dev/null @@ -1,173 +0,0 @@ --- Version 2.11 - --- All the rows inserted during Rails migrations. Rows inserted during server startup tasks (Java) are excluded : rules, profiles, metrics, ... - -INSERT INTO ACTIVE_FILTERS(ID, FILTER_ID, USER_ID, ORDER_INDEX) VALUES (1, 1, null, 1); -INSERT INTO ACTIVE_FILTERS(ID, FILTER_ID, USER_ID, ORDER_INDEX) VALUES (2, 2, null, 2); -INSERT INTO ACTIVE_FILTERS(ID, FILTER_ID, USER_ID, ORDER_INDEX) VALUES (3, 3, null, 3); -ALTER TABLE ACTIVE_FILTERS ALTER COLUMN ID RESTART WITH 4; - -INSERT INTO CRITERIA(ID, FILTER_ID, FAMILY, KEE, OPERATOR, VALUE, TEXT_VALUE, VARIATION) VALUES (1, 1, 'qualifier', null, '=', null, 'TRK', null); -INSERT INTO CRITERIA(ID, FILTER_ID, FAMILY, KEE, OPERATOR, VALUE, TEXT_VALUE, VARIATION) VALUES (2, 2, 'qualifier', null, '=', null, 'TRK', null); -INSERT INTO CRITERIA(ID, FILTER_ID, FAMILY, KEE, OPERATOR, VALUE, TEXT_VALUE, VARIATION) VALUES (3, 3, 'qualifier', null, '=', null, 'VW,SVW,TRK,BRC,DIR,PAC,FIL,CLA,UTS,LIB', null); -ALTER TABLE CRITERIA ALTER COLUMN ID RESTART WITH 4; - -INSERT INTO FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (1, 1, 'metric', 'alert_status', null, 1, null); -INSERT INTO FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (2, 1, 'name', null, 'ASC', 2, null); -INSERT INTO FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (3, 1, 'version', null, null, 3, null); -INSERT INTO FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (4, 1, 'metric', 'ncloc', null, 4, null); -INSERT INTO FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (5, 1, 'metric', 'violations_density', null, 5, null); -INSERT INTO FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (6, 1, 'date', null, null, 6, null); -INSERT INTO FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (7, 1, 'links', null, null, 7, null); -INSERT INTO FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (8, 2, 'name', null, 'ASC', 1, null); -INSERT INTO FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (9, 2, 'metric', 'ncloc', null, 2, null); -INSERT INTO FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (10, 2, 'metric', 'violations_density', null, 3, null); -INSERT INTO FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (11, 3, 'metric', 'alert_status', null, 1, null); -INSERT INTO FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (12, 3, 'name', null, 'ASC', 2, null); -INSERT INTO FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (13, 3, 'metric', 'ncloc', null, 3, null); -INSERT INTO FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (14, 3, 'metric', 'violations_density', null, 4, null); -INSERT INTO FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (15, 3, 'date', null, null, 5, null); -ALTER TABLE FILTER_COLUMNS ALTER COLUMN ID RESTART WITH 16; - -INSERT INTO FILTERS(ID, NAME, USER_ID, SHARED, FAVOURITES, RESOURCE_ID, DEFAULT_VIEW, PAGE_SIZE, PERIOD_INDEX) VALUES (1, 'Projects', null, true, false, null, 'list', null, null); -INSERT INTO FILTERS(ID, NAME, USER_ID, SHARED, FAVOURITES, RESOURCE_ID, DEFAULT_VIEW, PAGE_SIZE, PERIOD_INDEX) VALUES (2, 'Treemap', null, true, false, null, 'treemap', null, null); -INSERT INTO FILTERS(ID, NAME, USER_ID, SHARED, FAVOURITES, RESOURCE_ID, DEFAULT_VIEW, PAGE_SIZE, PERIOD_INDEX) VALUES (3, 'My favourites', null, true, true, null, 'list', null, null); -ALTER TABLE FILTERS ALTER COLUMN ID RESTART WITH 4; - -INSERT INTO GROUP_ROLES(ID, GROUP_ID, RESOURCE_ID, ROLE) VALUES (1, 1, null, 'admin'); -INSERT INTO GROUP_ROLES(ID, GROUP_ID, RESOURCE_ID, ROLE) VALUES (2, 1, null, 'default-admin'); -INSERT INTO GROUP_ROLES(ID, GROUP_ID, RESOURCE_ID, ROLE) VALUES (3, 2, null, 'default-user'); -INSERT INTO GROUP_ROLES(ID, GROUP_ID, RESOURCE_ID, ROLE) VALUES (4, null, null, 'default-user'); -INSERT INTO GROUP_ROLES(ID, GROUP_ID, RESOURCE_ID, ROLE) VALUES (5, 2, null, 'default-codeviewer'); -INSERT INTO GROUP_ROLES(ID, GROUP_ID, RESOURCE_ID, ROLE) VALUES (6, null, null, 'default-codeviewer'); -ALTER TABLE GROUP_ROLES ALTER COLUMN ID RESTART WITH 7; - -INSERT INTO GROUPS(ID, NAME, DESCRIPTION, CREATED_AT, UPDATED_AT) VALUES (1, 'sonar-administrators', 'System administrators', '2011-09-26 22:27:51.0', '2011-09-26 22:27:51.0'); -INSERT INTO GROUPS(ID, NAME, DESCRIPTION, CREATED_AT, UPDATED_AT) VALUES (2, 'sonar-users', 'Any new users created will automatically join this group', '2011-09-26 22:27:51.0', '2011-09-26 22:27:51.0'); -ALTER TABLE GROUPS ALTER COLUMN ID RESTART WITH 3; - -INSERT INTO GROUPS_USERS(USER_ID, GROUP_ID) VALUES (1, 1); -INSERT INTO GROUPS_USERS(USER_ID, GROUP_ID) VALUES (1, 2); - -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('1'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('2'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('10'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('11'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('13'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('14'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('16'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('35'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('36'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('39'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('41'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('46'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('48'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('49'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('51'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('52'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('53'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('54'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('55'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('57'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('58'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('59'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('60'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('61'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('62'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('66'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('68'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('69'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('72'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('73'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('75'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('76'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('77'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('78'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('79'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('80'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('81'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('82'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('84'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('85'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('86'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('87'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('88'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('89'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('90'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('91'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('92'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('93'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('94'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('95'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('96'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('97'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('98'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('99'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('100'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('101'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('110'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('111'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('112'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('113'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('114'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('115'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('116'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('117'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('118'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('119'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('120'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('131'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('132'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('133'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('134'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('135'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('136'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('137'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('138'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('139'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('140'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('141'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('142'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('150'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('151'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('160'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('162'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('163'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('165'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('166'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('167'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('168'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('169'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('170'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('180'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('181'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('190'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('191'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('200'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('201'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('202'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('203'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('210'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('211'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('212'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('213'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('214'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('215'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('216'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('217'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('220'); -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 SCHEMA_MIGRATIONS(VERSION) VALUES ('233'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('234'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('235'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('236'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('237'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('238'); -INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('239'); - -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/persistence/schema-derby.ddl b/sonar-core/src/main/resources/org/sonar/persistence/schema-derby.ddl deleted file mode 100644 index b01f46b5494..00000000000 --- a/sonar-core/src/main/resources/org/sonar/persistence/schema-derby.ddl +++ /dev/null @@ -1,666 +0,0 @@ --- Structure of version 2.11 - --- This file has been generated manually : --- 1. start sonar with property sonar.useStructureDump=false --- 2. execute $DERBY_HOME/bin/dblook -d 'jdbc:derby://localhost:1527/sonar;user=sonar;password=sonar' -o /derby.ddl --- 3. copy the generated derby.ddl into this file - -CREATE TABLE "QUALITY_MODELS" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "NAME" VARCHAR(100) -); - -CREATE TABLE "GROUPS_USERS" ( - "USER_ID" INTEGER, - "GROUP_ID" INTEGER -); - -CREATE TABLE "CHARACTERISTIC_EDGES" ( - "CHILD_ID" INTEGER, - "PARENT_ID" INTEGER -); - -CREATE TABLE "CRITERIA" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "FILTER_ID" INTEGER, - "FAMILY" VARCHAR(100), - "KEE" VARCHAR(100), - "OPERATOR" VARCHAR(20), - "VALUE" DECIMAL(30,20), - "TEXT_VALUE" VARCHAR(256), - "VARIATION" BOOLEAN -); - -CREATE TABLE "DEPENDENCIES" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "FROM_SNAPSHOT_ID" INTEGER, - "FROM_RESOURCE_ID" INTEGER, - "TO_SNAPSHOT_ID" INTEGER, - "TO_RESOURCE_ID" INTEGER, - "DEP_USAGE" VARCHAR(30), - "DEP_WEIGHT" INTEGER, - "PROJECT_SNAPSHOT_ID" INTEGER, - "PARENT_DEPENDENCY_ID" BIGINT, - "FROM_SCOPE" VARCHAR(3), - "TO_SCOPE" VARCHAR(3) -); - -CREATE TABLE "CHARACTERISTICS" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "QUALITY_MODEL_ID" INTEGER, - "KEE" VARCHAR(100), - "NAME" VARCHAR(100), - "RULE_ID" INTEGER, - "DEPTH" INTEGER, - "CHARACTERISTIC_ORDER" INTEGER, - "DESCRIPTION" VARCHAR(4000), - "ENABLED" BOOLEAN -); - -CREATE TABLE "RULES_PARAMETERS" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "RULE_ID" INTEGER NOT NULL, - "NAME" VARCHAR(128) NOT NULL, - "PARAM_TYPE" VARCHAR(512) NOT NULL, - "DEFAULT_VALUE" VARCHAR(4000), - "DESCRIPTION" VARCHAR(4000) -); - -CREATE TABLE "RULES_PROFILES" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "NAME" VARCHAR(100) NOT NULL, - "DEFAULT_PROFILE" BOOLEAN DEFAULT FALSE, - "PROVIDED" BOOLEAN NOT NULL DEFAULT FALSE, - "LANGUAGE" VARCHAR(16), - "PARENT_NAME" VARCHAR(100), - "ENABLED" BOOLEAN NOT NULL DEFAULT TRUE, - "VERSION" INTEGER DEFAULT 1, - "USED_PROFILE" BOOLEAN DEFAULT FALSE -); - -CREATE TABLE "WIDGETS" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "DASHBOARD_ID" INTEGER NOT NULL, - "WIDGET_KEY" VARCHAR(256) NOT NULL, - "NAME" VARCHAR(256), - "DESCRIPTION" VARCHAR(1000), - "COLUMN_INDEX" INTEGER, - "ROW_INDEX" INTEGER, - "CONFIGURED" BOOLEAN, - "CREATED_AT" TIMESTAMP, - "UPDATED_AT" TIMESTAMP -); - -CREATE TABLE "FILTER_COLUMNS" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "FILTER_ID" INTEGER, - "FAMILY" VARCHAR(100), - "KEE" VARCHAR(100), - "SORT_DIRECTION" VARCHAR(5), - "ORDER_INDEX" INTEGER, - "VARIATION" BOOLEAN -); - -CREATE TABLE "MEASURE_DATA" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "MEASURE_ID" INTEGER, - "SNAPSHOT_ID" INTEGER, - "DATA" BLOB(2147483647) -); - -CREATE TABLE "GROUPS" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "NAME" VARCHAR(40), - "DESCRIPTION" VARCHAR(200), - "CREATED_AT" TIMESTAMP, - "UPDATED_AT" TIMESTAMP -); - -CREATE TABLE "ACTIVE_RULE_PARAM_CHANGES" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "ACTIVE_RULE_CHANGE_ID" INTEGER NOT NULL, - "RULES_PARAMETER_ID" INTEGER NOT NULL, - "OLD_VALUE" VARCHAR(4000), - "NEW_VALUE" VARCHAR(4000) -); - -CREATE TABLE "SNAPSHOTS" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "CREATED_AT" TIMESTAMP, - "PROJECT_ID" INTEGER NOT NULL, - "PARENT_SNAPSHOT_ID" INTEGER, - "STATUS" VARCHAR(4) NOT NULL DEFAULT 'U', - "ISLAST" BOOLEAN NOT NULL DEFAULT FALSE, - "SCOPE" VARCHAR(3), - "QUALIFIER" VARCHAR(10), - "ROOT_SNAPSHOT_ID" INTEGER, - "VERSION" VARCHAR(60), - "PATH" VARCHAR(96), - "DEPTH" INTEGER, - "ROOT_PROJECT_ID" INTEGER, - "PERIOD1_MODE" VARCHAR(100), - "PERIOD1_PARAM" VARCHAR(100), - "PERIOD1_DATE" TIMESTAMP, - "PERIOD2_MODE" VARCHAR(100), - "PERIOD2_PARAM" VARCHAR(100), - "PERIOD2_DATE" TIMESTAMP, - "PERIOD3_MODE" VARCHAR(100), - "PERIOD3_PARAM" VARCHAR(100), - "PERIOD3_DATE" TIMESTAMP, - "PERIOD4_MODE" VARCHAR(100), - "PERIOD4_PARAM" VARCHAR(100), - "PERIOD4_DATE" TIMESTAMP, - "PERIOD5_MODE" VARCHAR(100), - "PERIOD5_PARAM" VARCHAR(100), - "PERIOD5_DATE" TIMESTAMP -); - -CREATE TABLE "SCHEMA_MIGRATIONS" ( -"VERSION" VARCHAR(256) NOT NULL -); - -CREATE TABLE "GROUP_ROLES" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "GROUP_ID" INTEGER, - "RESOURCE_ID" INTEGER, - "ROLE" VARCHAR(64) NOT NULL -); - -CREATE TABLE "RULES" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "PLUGIN_RULE_KEY" VARCHAR(200) NOT NULL, - "PLUGIN_NAME" VARCHAR(255) NOT NULL, - "DESCRIPTION" CLOB(2147483647), - "PRIORITY" INTEGER, - "ENABLED" BOOLEAN, - "CARDINALITY" VARCHAR(10), - "PARENT_ID" INTEGER, - "PLUGIN_CONFIG_KEY" VARCHAR(500), - "NAME" VARCHAR(200) -); - -CREATE TABLE "WIDGET_PROPERTIES" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "WIDGET_ID" INTEGER NOT NULL, - "KEE" VARCHAR(100), - "TEXT_VALUE" VARCHAR(4000) -); - -CREATE TABLE "EVENTS" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "NAME" VARCHAR(400), - "RESOURCE_ID" INTEGER, - "SNAPSHOT_ID" INTEGER, - "CATEGORY" VARCHAR(50), - "EVENT_DATE" TIMESTAMP, - "CREATED_AT" TIMESTAMP, - "DESCRIPTION" VARCHAR(4000) -); - -CREATE TABLE "ALERTS" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "PROFILE_ID" INTEGER, - "METRIC_ID" INTEGER, - "OPERATOR" VARCHAR(3), - "VALUE_ERROR" VARCHAR(64), - "VALUE_WARNING" VARCHAR(64) -); - -CREATE TABLE "PROPERTIES" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "PROP_KEY" VARCHAR(512), - "RESOURCE_ID" INTEGER, - "TEXT_VALUE" CLOB(2147483647), - "USER_ID" INTEGER -); - -CREATE TABLE "PROJECT_LINKS" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "PROJECT_ID" INTEGER NOT NULL, - "LINK_TYPE" VARCHAR(20), - "NAME" VARCHAR(128), - "HREF" VARCHAR(2048) NOT NULL -); - -CREATE TABLE "DUPLICATIONS_INDEX" ( - "PROJECT_SNAPSHOT_ID" INTEGER NOT NULL, - "SNAPSHOT_ID" INTEGER NOT NULL, - "HASH" VARCHAR(50) NOT NULL, - "INDEX_IN_FILE" INTEGER NOT NULL, - "START_LINE" INTEGER NOT NULL, - "END_LINE" INTEGER NOT NULL -); - -CREATE TABLE "REVIEW_COMMENTS" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "CREATED_AT" TIMESTAMP, - "UPDATED_AT" TIMESTAMP, - "REVIEW_ID" INTEGER, - "USER_ID" INTEGER, - "REVIEW_TEXT" CLOB(2147483647) -); - -CREATE TABLE "ACTIVE_RULE_CHANGES" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "USER_NAME" VARCHAR(200) NOT NULL, - "PROFILE_ID" INTEGER NOT NULL, - "PROFILE_VERSION" INTEGER NOT NULL, - "RULE_ID" INTEGER NOT NULL, - "CHANGE_DATE" TIMESTAMP NOT NULL, - "ENABLED" BOOLEAN, - "OLD_SEVERITY" INTEGER, - "NEW_SEVERITY" INTEGER -); - -CREATE TABLE "PROJECT_MEASURES" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "VALUE" DECIMAL(30,20), - "METRIC_ID" INTEGER NOT NULL, - "SNAPSHOT_ID" INTEGER, - "RULE_ID" INTEGER, - "RULES_CATEGORY_ID" INTEGER, - "TEXT_VALUE" VARCHAR(96), - "TENDENCY" INTEGER, - "MEASURE_DATE" TIMESTAMP, - "PROJECT_ID" INTEGER, - "ALERT_STATUS" VARCHAR(5), - "ALERT_TEXT" VARCHAR(4000), - "URL" VARCHAR(2000), - "DESCRIPTION" VARCHAR(4000), - "RULE_PRIORITY" INTEGER, - "CHARACTERISTIC_ID" INTEGER, - "VARIATION_VALUE_1" DECIMAL(30,20), - "VARIATION_VALUE_2" DECIMAL(30,20), - "VARIATION_VALUE_3" DECIMAL(30,20), - "VARIATION_VALUE_4" DECIMAL(30,20), - "VARIATION_VALUE_5" DECIMAL(30,20) -); - -CREATE TABLE "SNAPSHOT_SOURCES" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "SNAPSHOT_ID" INTEGER NOT NULL, - "DATA" CLOB(2147483647) -); - -CREATE TABLE "PROJECTS" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "NAME" VARCHAR(256), - "DESCRIPTION" VARCHAR(2000), - "ENABLED" BOOLEAN NOT NULL DEFAULT TRUE, - "SCOPE" VARCHAR(3), - "QUALIFIER" VARCHAR(10), - "KEE" VARCHAR(400), - "ROOT_ID" INTEGER, - "PROFILE_ID" INTEGER, - "LANGUAGE" VARCHAR(5), - "COPY_RESOURCE_ID" INTEGER, - "LONG_NAME" VARCHAR(256) -); - -CREATE TABLE "REVIEWS" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "CREATED_AT" TIMESTAMP, - "UPDATED_AT" TIMESTAMP, - "USER_ID" INTEGER, - "ASSIGNEE_ID" INTEGER, - "TITLE" VARCHAR(500), - "STATUS" VARCHAR(10), - "SEVERITY" VARCHAR(10), - "RULE_FAILURE_PERMANENT_ID" INTEGER, - "PROJECT_ID" INTEGER, - "RESOURCE_ID" INTEGER, - "RESOURCE_LINE" INTEGER, - "RESOLUTION" VARCHAR(200), - "RULE_ID" INTEGER, - "MANUAL_VIOLATION" BOOLEAN, - "MANUAL_SEVERITY" BOOLEAN -); - -CREATE TABLE "RULES_CATEGORIES" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "NAME" VARCHAR(255) NOT NULL, - "DESCRIPTION" VARCHAR(1000) NOT NULL -); - -CREATE TABLE "ACTIVE_FILTERS" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "FILTER_ID" INTEGER, - "USER_ID" INTEGER, - "ORDER_INDEX" INTEGER -); - -CREATE TABLE "MANUAL_MEASURES" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "METRIC_ID" INTEGER NOT NULL, - "RESOURCE_ID" INTEGER, - "VALUE" DECIMAL(30,20), - "TEXT_VALUE" VARCHAR(4000), - "USER_LOGIN" VARCHAR(40), - "DESCRIPTION" VARCHAR(4000), - "CREATED_AT" TIMESTAMP, - "UPDATED_AT" TIMESTAMP -); - -CREATE TABLE "ACTIVE_RULES" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "PROFILE_ID" INTEGER NOT NULL, - "RULE_ID" INTEGER NOT NULL, - "FAILURE_LEVEL" INTEGER NOT NULL, - "INHERITANCE" VARCHAR(10) -); - -CREATE TABLE "NOTIFICATIONS" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "CREATED_AT" TIMESTAMP, - "DATA" BLOB(2147483647) -); - -CREATE TABLE "USER_ROLES" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "USER_ID" INTEGER, - "RESOURCE_ID" INTEGER, - "ROLE" VARCHAR(64) NOT NULL -); - -CREATE TABLE "ACTIVE_DASHBOARDS" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "DASHBOARD_ID" INTEGER NOT NULL, - "USER_ID" INTEGER, - "ORDER_INDEX" INTEGER -); - -CREATE TABLE "ACTIVE_RULE_PARAMETERS" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "ACTIVE_RULE_ID" INTEGER NOT NULL, - "RULES_PARAMETER_ID" INTEGER NOT NULL, - "VALUE" VARCHAR(4000) -); - -CREATE TABLE "CHARACTERISTIC_PROPERTIES" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "CHARACTERISTIC_ID" INTEGER, - "KEE" VARCHAR(100), - "VALUE" DECIMAL(30,20), - "TEXT_VALUE" VARCHAR(4000) -); - -CREATE TABLE "USERS" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "LOGIN" VARCHAR(40), - "NAME" VARCHAR(200), - "EMAIL" VARCHAR(100), - "CRYPTED_PASSWORD" VARCHAR(40), - "SALT" VARCHAR(40), - "CREATED_AT" TIMESTAMP, - "UPDATED_AT" TIMESTAMP, - "REMEMBER_TOKEN" VARCHAR(500), - "REMEMBER_TOKEN_EXPIRES_AT" TIMESTAMP -); - -CREATE TABLE "FILTERS" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "NAME" VARCHAR(100), - "USER_ID" INTEGER, - "SHARED" BOOLEAN, - "FAVOURITES" BOOLEAN, - "RESOURCE_ID" INTEGER, - "DEFAULT_VIEW" VARCHAR(20), - "PAGE_SIZE" INTEGER, - "PERIOD_INDEX" INTEGER -); - -CREATE TABLE "DASHBOARDS" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "USER_ID" INTEGER, - "NAME" VARCHAR(256), - "DESCRIPTION" VARCHAR(1000), - "COLUMN_LAYOUT" VARCHAR(20), - "SHARED" BOOLEAN, - "CREATED_AT" TIMESTAMP, - "UPDATED_AT" TIMESTAMP -); - -CREATE TABLE "RULE_FAILURES" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "SNAPSHOT_ID" INTEGER NOT NULL, - "RULE_ID" INTEGER NOT NULL, - "FAILURE_LEVEL" INTEGER NOT NULL, - "MESSAGE" VARCHAR(4000), - "LINE" INTEGER, - "COST" DECIMAL(30,20), - "CREATED_AT" TIMESTAMP, - "CHECKSUM" VARCHAR(1000), - "PERMANENT_ID" INTEGER, - "SWITCHED_OFF" BOOLEAN, - "COMMITTER" VARCHAR(100) -); - -CREATE TABLE "METRICS" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "NAME" VARCHAR(64) NOT NULL, - "DESCRIPTION" VARCHAR(255), - "DIRECTION" INTEGER NOT NULL DEFAULT 0, - "DOMAIN" VARCHAR(64), - "SHORT_NAME" VARCHAR(64), - "QUALITATIVE" BOOLEAN NOT NULL DEFAULT FALSE, - "VAL_TYPE" VARCHAR(8), - "USER_MANAGED" BOOLEAN DEFAULT FALSE, - "ENABLED" BOOLEAN DEFAULT TRUE, - "ORIGIN" VARCHAR(3), - "WORST_VALUE" DECIMAL(30,20), - "BEST_VALUE" DECIMAL(30,20), - "OPTIMIZED_BEST_VALUE" BOOLEAN, - "HIDDEN" BOOLEAN -); - -CREATE TABLE "LOADED_TEMPLATES" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "KEE" VARCHAR(200), - "TEMPLATE_TYPE" VARCHAR(15) -); - -CREATE TABLE "RESOURCE_INDEX" ( - "KEE" VARCHAR(400) NOT NULL, - "POSITION" INTEGER NOT NULL, - "NAME_SIZE" INTEGER NOT NULL, - "RESOURCE_ID" INTEGER NOT NULL, - "ROOT_PROJECT_ID" INTEGER NOT NULL, - "QUALIFIER" VARCHAR(10) NOT NULL -); - -CREATE TABLE "ACTION_PLANS" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "USER_ID" INTEGER, - "NAME" VARCHAR(200), - "DESCRIPTION" VARCHAR(1000), - "DEAD_LINE" TIMESTAMP, - "USER_LOGIN" VARCHAR(40), - "PROJECT_ID" INTEGER, - "STATUS" VARCHAR(10), - "CREATED_AT" TIMESTAMP, - "UPDATED_AT" TIMESTAMP -); - -CREATE TABLE "ACTION_PLANS_REVIEWS" ( - "ACTION_PLAN_ID" INTEGER, - "REVIEW_ID" INTEGER -); - - --- ---------------------------------------------- --- DDL Statements for indexes --- ---------------------------------------------- - -CREATE INDEX "GROUP_ROLES_RESOURCE" ON "GROUP_ROLES" ("RESOURCE_ID"); - -CREATE INDEX "GROUP_ROLES_GROUP" ON "GROUP_ROLES" ("GROUP_ID"); - -CREATE INDEX "USER_ROLES_RESOURCE" ON "USER_ROLES" ("RESOURCE_ID"); - -CREATE INDEX "USER_ROLES_USER" ON "USER_ROLES" ("USER_ID"); - -CREATE INDEX "DUPLICATIONS_INDEX_HASH" ON "DUPLICATIONS_INDEX" ("HASH"); - -CREATE INDEX "DUPLICATIONS_INDEX_SID" ON "DUPLICATIONS_INDEX" ("SNAPSHOT_ID"); - -CREATE INDEX "DUPLICATIONS_INDEX_PSID" ON "DUPLICATIONS_INDEX" ("PROJECT_SNAPSHOT_ID"); - -CREATE INDEX "SNAP_SOURCES_SNAPSHOT_ID" ON "SNAPSHOT_SOURCES" ("SNAPSHOT_ID"); - -CREATE INDEX "INDEX_GROUPS_USERS_ON_GROUP_ID" ON "GROUPS_USERS" ("GROUP_ID"); - -CREATE INDEX "INDEX_GROUPS_USERS_ON_USER_ID" ON "GROUPS_USERS" ("USER_ID"); - -CREATE INDEX "DEPS_TO_SID" ON "DEPENDENCIES" ("TO_SNAPSHOT_ID"); - -CREATE INDEX "DEPS_FROM_SID" ON "DEPENDENCIES" ("FROM_SNAPSHOT_ID"); - -CREATE INDEX "DEPS_PRJ_SID" ON "DEPENDENCIES" ("PROJECT_SNAPSHOT_ID"); - -CREATE INDEX "MEASURES_SID_METRIC" ON "PROJECT_MEASURES" ("SNAPSHOT_ID", "METRIC_ID"); - -CREATE INDEX "ACTIVE_RULE_CHANGES_PID" ON "ACTIVE_RULE_CHANGES" ("PROFILE_ID"); - -CREATE INDEX "CHARACTERISTIC_PROPERTIES_CID" ON "CHARACTERISTIC_PROPERTIES" ("CHARACTERISTIC_ID"); - -CREATE UNIQUE INDEX "METRICS_UNIQUE_NAME" ON "METRICS" ("NAME"); - -CREATE INDEX "ACTIVE_RULE_PARAM_CHANGES_CID" ON "ACTIVE_RULE_PARAM_CHANGES" ("ACTIVE_RULE_CHANGE_ID"); - -CREATE INDEX "M_DATA_SID" ON "MEASURE_DATA" ("SNAPSHOT_ID"); - -CREATE INDEX "MEASURE_DATA_MEASURE_ID" ON "MEASURE_DATA" ("MEASURE_ID"); - -CREATE INDEX "RF_PERMANENT_ID" ON "RULE_FAILURES" ("PERMANENT_ID"); - -CREATE INDEX "RULE_FAILURE_RULE_ID" ON "RULE_FAILURES" ("RULE_ID"); - -CREATE INDEX "RULE_FAILURE_SNAPSHOT_ID" ON "RULE_FAILURES" ("SNAPSHOT_ID"); - -CREATE INDEX "EVENTS_SNAPSHOT_ID" ON "EVENTS" ("SNAPSHOT_ID"); - -CREATE INDEX "EVENTS_RESOURCE_ID" ON "EVENTS" ("RESOURCE_ID"); - -CREATE INDEX "WIDGETS_WIDGETKEY" ON "WIDGETS" ("WIDGET_KEY"); - -CREATE INDEX "WIDGETS_DASHBOARDS" ON "WIDGETS" ("DASHBOARD_ID"); - -CREATE INDEX "SNAPSHOTS_QUALIFIER" ON "SNAPSHOTS" ("QUALIFIER"); - -CREATE INDEX "SNAPSHOTS_ROOT" ON "SNAPSHOTS" ("ROOT_SNAPSHOT_ID"); - -CREATE INDEX "SNAPSHOTS_PARENT" ON "SNAPSHOTS" ("PARENT_SNAPSHOT_ID"); - -CREATE INDEX "SNAPSHOT_PROJECT_ID" ON "SNAPSHOTS" ("PROJECT_ID"); - -CREATE INDEX "RULES_PARAMETERS_RULE_ID" ON "RULES_PARAMETERS" ("RULE_ID"); - -CREATE INDEX "ACTIVE_DASHBOARDS_DASHBOARDID" ON "ACTIVE_DASHBOARDS" ("DASHBOARD_ID"); - -CREATE INDEX "ACTIVE_DASHBOARDS_USERID" ON "ACTIVE_DASHBOARDS" ("USER_ID"); - -CREATE UNIQUE INDEX "UNIQUE_SCHEMA_MIGRATIONS" ON "SCHEMA_MIGRATIONS" ("VERSION"); - -CREATE INDEX "WIDGET_PROPERTIES_WIDGETS" ON "WIDGET_PROPERTIES" ("WIDGET_ID"); - -CREATE INDEX "PROPERTIES_KEY" ON "PROPERTIES" ("PROP_KEY"); - -CREATE INDEX "MANUAL_MEASURES_RESOURCE_ID" ON "MANUAL_MEASURES" ("RESOURCE_ID"); - -CREATE INDEX "PROJECTS_KEE" ON "PROJECTS" ("KEE"); - -CREATE INDEX "RESOURCE_INDEX_KEE" ON "RESOURCE_INDEX" ("KEE"); - -CREATE INDEX "INDEX_ACTION_PLANS_ON_PROJET_ID" ON "ACTION_PLANS" ("PROJECT_ID"); - -CREATE INDEX "INDEX_ACTION_PLANS_REVIEWS_ON_ACTION_PLAN_ID" ON "ACTION_PLANS_REVIEWS" ("ACTION_PLAN_ID"); - -CREATE INDEX "INDEX_ACTION_PLANS_REVIEWS_ON_REVIEW_ID" ON "ACTION_PLANS_REVIEWS" ("REVIEW_ID"); - - --- ---------------------------------------------- --- DDL Statements for keys --- ---------------------------------------------- - --- primary/unique -ALTER TABLE "GROUP_ROLES" ADD CONSTRAINT "SQL110927104437910" PRIMARY KEY ("ID"); - -ALTER TABLE "REVIEWS" ADD CONSTRAINT "SQL110927104440700" PRIMARY KEY ("ID"); - -ALTER TABLE "RULES" ADD CONSTRAINT "SQL110927104437080" PRIMARY KEY ("ID"); - -ALTER TABLE "USER_ROLES" ADD CONSTRAINT "SQL110927104437940" PRIMARY KEY ("ID"); - -ALTER TABLE "SNAPSHOT_SOURCES" ADD CONSTRAINT "SQL110927104437590" PRIMARY KEY ("ID"); - -ALTER TABLE "NOTIFICATIONS" ADD CONSTRAINT "SQL110927104441030" PRIMARY KEY ("ID"); - -ALTER TABLE "RULES_CATEGORIES" ADD CONSTRAINT "SQL110927104437060" PRIMARY KEY ("ID"); - -ALTER TABLE "DEPENDENCIES" ADD CONSTRAINT "SQL110927104438330" PRIMARY KEY ("ID"); - -ALTER TABLE "PROJECT_MEASURES" ADD CONSTRAINT "SQL110927104437040" PRIMARY KEY ("ID"); - -ALTER TABLE "ACTIVE_RULE_CHANGES" ADD CONSTRAINT "SQL110927104440770" PRIMARY KEY ("ID"); - -ALTER TABLE "CHARACTERISTIC_PROPERTIES" ADD CONSTRAINT "SQL110927104439660" PRIMARY KEY ("ID"); - -ALTER TABLE "QUALITY_MODELS" ADD CONSTRAINT "SQL110927104439440" PRIMARY KEY ("ID"); - -ALTER TABLE "USERS" ADD CONSTRAINT "SQL110927104437310" PRIMARY KEY ("ID"); - -ALTER TABLE "CRITERIA" ADD CONSTRAINT "SQL110927104438720" PRIMARY KEY ("ID"); - -ALTER TABLE "METRICS" ADD CONSTRAINT "SQL110927104436990" PRIMARY KEY ("ID"); - -ALTER TABLE "ACTIVE_RULE_PARAM_CHANGES" ADD CONSTRAINT "SQL110927104440790" PRIMARY KEY ("ID"); - -ALTER TABLE "MEASURE_DATA" ADD CONSTRAINT "SQL110927104437810" PRIMARY KEY ("ID"); - -ALTER TABLE "RULE_FAILURES" ADD CONSTRAINT "SQL110927104437100" PRIMARY KEY ("ID"); - -ALTER TABLE "EVENTS" ADD CONSTRAINT "SQL110927104437690" PRIMARY KEY ("ID"); - -ALTER TABLE "WIDGETS" ADD CONSTRAINT "SQL110927104439750" PRIMARY KEY ("ID"); - -ALTER TABLE "SNAPSHOTS" ADD CONSTRAINT "SQL110927104436960" PRIMARY KEY ("ID"); - -ALTER TABLE "ACTIVE_RULES" ADD CONSTRAINT "SQL110927104437550" PRIMARY KEY ("ID"); - -ALTER TABLE "CHARACTERISTICS" ADD CONSTRAINT "SQL110927104439450" PRIMARY KEY ("ID"); - -ALTER TABLE "RULES_PARAMETERS" ADD CONSTRAINT "SQL110927104437130" PRIMARY KEY ("ID"); - -ALTER TABLE "ACTIVE_FILTERS" ADD CONSTRAINT "SQL110927104438740" PRIMARY KEY ("ID"); - -ALTER TABLE "ACTIVE_DASHBOARDS" ADD CONSTRAINT "SQL110927104439710" PRIMARY KEY ("ID"); - -ALTER TABLE "FILTER_COLUMNS" ADD CONSTRAINT "SQL110927104438710" PRIMARY KEY ("ID"); - -ALTER TABLE "REVIEW_COMMENTS" ADD CONSTRAINT "SQL110927104440710" PRIMARY KEY ("ID"); - -ALTER TABLE "WIDGET_PROPERTIES" ADD CONSTRAINT "SQL110927104439770" PRIMARY KEY ("ID"); - -ALTER TABLE "PROPERTIES" ADD CONSTRAINT "SQL110927104437750" PRIMARY KEY ("ID"); - -ALTER TABLE "DASHBOARDS" ADD CONSTRAINT "SQL110927104439740" PRIMARY KEY ("ID"); - -ALTER TABLE "GROUPS" ADD CONSTRAINT "SQL110927104437850" PRIMARY KEY ("ID"); - -ALTER TABLE "PROJECT_LINKS" ADD CONSTRAINT "SQL110927104437150" PRIMARY KEY ("ID"); - -ALTER TABLE "FILTERS" ADD CONSTRAINT "SQL110927104438690" PRIMARY KEY ("ID"); - -ALTER TABLE "MANUAL_MEASURES" ADD CONSTRAINT "SQL110927104440930" PRIMARY KEY ("ID"); - -ALTER TABLE "ALERTS" ADD CONSTRAINT "SQL110927104437730" PRIMARY KEY ("ID"); - -ALTER TABLE "PROJECTS" ADD CONSTRAINT "SQL110927104436930" PRIMARY KEY ("ID"); - -ALTER TABLE "RULES_PROFILES" ADD CONSTRAINT "SQL110927104437540" PRIMARY KEY ("ID"); - -ALTER TABLE "ACTIVE_RULE_PARAMETERS" ADD CONSTRAINT "SQL110927104437560" PRIMARY KEY ("ID"); - -ALTER TABLE "LOADED_TEMPLATES" ADD CONSTRAINT "SQL110927104437650" PRIMARY KEY ("ID"); - -ALTER TABLE "ACTION_PLANS" ADD CONSTRAINT "SQL110927104447650" PRIMARY KEY ("ID"); diff --git a/sonar-server/src/main/java/org/sonar/server/platform/Platform.java b/sonar-server/src/main/java/org/sonar/server/platform/Platform.java index 9ff7a031df8..8b4e966fb3c 100644 --- a/sonar-server/src/main/java/org/sonar/server/platform/Platform.java +++ b/sonar-server/src/main/java/org/sonar/server/platform/Platform.java @@ -44,6 +44,7 @@ import org.sonar.core.persistence.DatabaseMigrator; import org.sonar.core.persistence.DefaultDatabase; import org.sonar.core.persistence.MyBatis; import org.sonar.core.qualitymodel.DefaultModelFinder; +import org.sonar.core.resource.ResourceIndexer; import org.sonar.core.rule.DefaultRuleFinder; import org.sonar.core.user.DefaultUserFinder; import org.sonar.jpa.dao.DaoFacade; @@ -133,6 +134,7 @@ public final class Platform { rootContainer.addSingleton(EmbeddedDatabaseFactory.class); rootContainer.addSingleton(DefaultDatabase.class); rootContainer.addSingleton(MyBatis.class); + rootContainer.addSingleton(ResourceIndexer.class); // for the migration -> see org.sonar.server.startup.IndexProjects rootContainer.addSingleton(DefaultDatabaseConnector.class); rootContainer.addSingleton(DefaultServerUpgradeStatus.class); rootContainer.addSingleton(DatabaseMigrator.class); diff --git a/sonar-server/src/main/java/org/sonar/server/startup/IndexProjects.java b/sonar-server/src/main/java/org/sonar/server/startup/IndexProjects.java index 40556756f23..14403cadb79 100644 --- a/sonar-server/src/main/java/org/sonar/server/startup/IndexProjects.java +++ b/sonar-server/src/main/java/org/sonar/server/startup/IndexProjects.java @@ -21,12 +21,9 @@ package org.sonar.server.startup; import org.sonar.api.ServerComponent; import org.sonar.api.platform.ServerUpgradeStatus; -import org.sonar.api.resources.Qualifiers; -import org.sonar.api.resources.Scopes; import org.sonar.api.utils.TimeProfiler; +import org.sonar.core.resource.ResourceIndexer; import org.sonar.jpa.entity.SchemaMigration; -import org.sonar.core.resource.ResourceIndexerDao; -import org.sonar.core.resource.ResourceIndexerFilter; /** * Index existing projects during migration to 2.13. Since this latter version, resources are automatically indexed @@ -37,11 +34,11 @@ import org.sonar.core.resource.ResourceIndexerFilter; public class IndexProjects implements ServerComponent { private ServerUpgradeStatus upgradeStatus; - private ResourceIndexerDao indexerDao; + private ResourceIndexer indexer; - public IndexProjects(ServerUpgradeStatus upgradeStatus, ResourceIndexerDao indexerDao) { + public IndexProjects(ServerUpgradeStatus upgradeStatus, ResourceIndexer indexer) { this.upgradeStatus = upgradeStatus; - this.indexerDao = indexerDao; + this.indexer = indexer; } public void start() { @@ -56,14 +53,8 @@ public class IndexProjects implements ServerComponent { private void index() { TimeProfiler profiler = new TimeProfiler().start("Index projects"); - indexerDao.index(newFilter()); + indexer.indexAll(); profiler.stop(); } - private static ResourceIndexerFilter newFilter() { - return ResourceIndexerFilter.create() - .setQualifiers(new String[]{Qualifiers.PROJECT, Qualifiers.MODULE, Qualifiers.VIEW, Qualifiers.SUBVIEW, Qualifiers.DIRECTORY, Qualifiers.PACKAGE, Qualifiers.FILE, Qualifiers.CLASS, Qualifiers.UNIT_TEST_FILE}) - .setScopes(new String[]{Scopes.PROJECT, Scopes.DIRECTORY, Scopes.FILE}); - } - } diff --git a/sonar-server/src/main/webapp/WEB-INF/db/migrate/README.txt b/sonar-server/src/main/webapp/WEB-INF/db/migrate/README.txt index a02204611a2..d8c5c3a85d4 100644 --- a/sonar-server/src/main/webapp/WEB-INF/db/migrate/README.txt +++ b/sonar-server/src/main/webapp/WEB-INF/db/migrate/README.txt @@ -3,7 +3,7 @@ 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/persistence/schema-derby.ddl - + sonar-core/src/main/resources/org/sonar/persistence/rows-derby.sql : + + sonar-core/src/main/resources/org/sonar/core/persistence/rows-derby.sql : - add "INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('')" * Update the migration id defined in sonar-core/src/main/java/org/sonar/jpa/entity/SchemaMigration.java * If a table is addded or removed, then edit sonar-core/src/main/java/org/sonar/persistence/DatabaseUtils.java diff --git a/sonar-server/src/test/java/org/sonar/server/startup/IndexProjectsTest.java b/sonar-server/src/test/java/org/sonar/server/startup/IndexProjectsTest.java index 3676c081dd6..b3d1f4692a4 100644 --- a/sonar-server/src/test/java/org/sonar/server/startup/IndexProjectsTest.java +++ b/sonar-server/src/test/java/org/sonar/server/startup/IndexProjectsTest.java @@ -21,9 +21,8 @@ package org.sonar.server.startup; import org.junit.Test; import org.sonar.api.platform.ServerUpgradeStatus; +import org.sonar.core.resource.ResourceIndexer; import org.sonar.jpa.entity.SchemaMigration; -import org.sonar.core.resource.ResourceIndexerDao; -import org.sonar.core.resource.ResourceIndexerFilter; import static org.mockito.Mockito.*; @@ -31,39 +30,39 @@ public class IndexProjectsTest { @Test public void doNotIndexOnFreshInstalls() { - ResourceIndexerDao indexerDao = mock(ResourceIndexerDao.class); + ResourceIndexer indexer = mock(ResourceIndexer.class); ServerUpgradeStatus status = mock(ServerUpgradeStatus.class); when(status.isUpgraded()).thenReturn(false); when(status.isFreshInstall()).thenReturn(true); - new IndexProjects(status, indexerDao).start(); + new IndexProjects(status, indexer).start(); - verifyZeroInteractions(indexerDao); + verifyZeroInteractions(indexer); } @Test public void doNotIndexOnUpgradesSince213() { - ResourceIndexerDao indexerDao = mock(ResourceIndexerDao.class); + ResourceIndexer indexer = mock(ResourceIndexer.class); ServerUpgradeStatus status = mock(ServerUpgradeStatus.class); when(status.isUpgraded()).thenReturn(true); when(status.isFreshInstall()).thenReturn(false); when(status.getInitialDbVersion()).thenReturn(SchemaMigration.VERSION_2_13 + 10); - new IndexProjects(status, indexerDao).start(); + new IndexProjects(status, indexer).start(); - verifyZeroInteractions(indexerDao); + verifyZeroInteractions(indexer); } @Test public void doIndexOnUpgradeBefore213() { - ResourceIndexerDao indexerDao = mock(ResourceIndexerDao.class); + ResourceIndexer indexer = mock(ResourceIndexer.class); ServerUpgradeStatus status = mock(ServerUpgradeStatus.class); when(status.isUpgraded()).thenReturn(true); when(status.isFreshInstall()).thenReturn(false); when(status.getInitialDbVersion()).thenReturn(SchemaMigration.VERSION_2_13 - 10); - new IndexProjects(status, indexerDao).start(); + new IndexProjects(status, indexer).start(); - verify(indexerDao).index(any(ResourceIndexerFilter.class)); + verify(indexer).indexAll(); } } -- cgit v1.2.3