if (!started) {
String jdbcConnectionUrl = testConnection();
dialect = DialectRepository.find(configuration.getString("sonar.jdbc.dialect"), jdbcConnectionUrl);
- LoggerFactory.getLogger("org.sonar.INFO").info("Database dialect class " + dialect.getClass().getName());
started = true;
}
if (!operational) {
*/
package org.sonar.persistence;
+import org.sonar.jpa.dialect.Dialect;
+
import javax.sql.DataSource;
/**
Database start();
Database stop();
DataSource getDataSource();
+ Dialect getDialect();
}
--- /dev/null
+/*
+ * 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.persistence;
+
+import org.apache.ibatis.session.SqlSession;
+import org.slf4j.LoggerFactory;
+import org.sonar.api.ServerComponent;
+
+import java.sql.Connection;
+
+/**
+ * Restore schema by executing DDL scripts. Only Derby database is supported. Other databases are created by Ruby on Rails migrations.
+ *
+ * @since 2.12
+ */
+public class DatabaseMigrator implements ServerComponent {
+
+ private MyBatis myBatis;
+ private Database database;
+
+ public DatabaseMigrator(MyBatis myBatis, Database database) {
+ this.myBatis = myBatis;
+ this.database = database;
+ }
+
+ /**
+ * @return true if the database has been created, false if this database is not supported
+ */
+ public boolean createDatabase() {
+ if (DdlUtils.supportsDialect(database.getDialect().getId())) {
+ LoggerFactory.getLogger(getClass()).info("Create database");
+ SqlSession session = myBatis.openSession();
+ Connection connection = session.getConnection();
+ try {
+ DdlUtils.execute(connection, database.getDialect().getId());
+ } finally {
+ session.close();
+ }
+ return true;
+ }
+ return false;
+ }
+}
return "derby".equals(dialect);
}
+ /**
+ * The connection is commited in this method but not closed.
+ */
public static void execute(Connection connection, String dialect) {
if (!supportsDialect(dialect)) {
throw new IllegalArgumentException("Unsupported dialect: " + dialect);
import org.slf4j.LoggerFactory;
import org.sonar.api.config.Settings;
import org.sonar.api.database.DatabaseProperties;
+import org.sonar.jpa.dialect.Dialect;
+import org.sonar.jpa.dialect.DialectRepository;
import javax.sql.DataSource;
import java.sql.SQLException;
private Settings settings;
private BasicDataSource datasource;
+ private Dialect dialect;
public DefaultDatabase(Settings settings) {
this.settings = settings;
try {
doBeforeStart();
- LOG.info("Create JDBC datasource");
- datasource = (BasicDataSource) BasicDataSourceFactory.createDataSource(getCommonsDbcpProperties());
+ Properties properties = getProperties();
+ dialect = initDialect(properties);
+ datasource = initDatasource(properties);
return this;
} catch (Exception e) {
}
}
+ BasicDataSource initDatasource(Properties properties) throws Exception {
+ LOG.info("Create JDBC datasource");
+ return (BasicDataSource) BasicDataSourceFactory.createDataSource(extractCommonsDbcpProperties(properties));
+ }
+
+ Dialect initDialect(Properties properties) {
+ Dialect result = DialectRepository.find(properties.getProperty("sonar.jdbc.dialect"), properties.getProperty("sonar.jdbc.url"));
+ if (result != null && "derby".equals(result.getId())) {
+ LoggerFactory.getLogger(getClass()).warn("Derby database should be used for evaluation purpose only");
+ }
+ return result;
+ }
+
protected void doBeforeStart() {
}
}
+ public final Dialect getDialect() {
+ return dialect;
+ }
+
public final DataSource getDataSource() {
return datasource;
}
}
}
- Properties getCommonsDbcpProperties() {
+ static Properties extractCommonsDbcpProperties(Properties properties) {
Properties result = new Properties();
- Properties props = getProperties();
- for (Map.Entry<Object, Object> entry : props.entrySet()) {
+ for (Map.Entry<Object, Object> entry : properties.entrySet()) {
String key = (String) entry.getKey();
if (StringUtils.startsWith(key, "sonar.jdbc.")) {
result.setProperty(StringUtils.removeStart(key, "sonar.jdbc."), (String) entry.getValue());
import org.apache.commons.dbcp.BasicDataSource;
import org.apache.commons.dbcp.BasicDataSourceFactory;
+import org.sonar.jpa.dialect.Derby;
+import org.sonar.jpa.dialect.Dialect;
import javax.sql.DataSource;
import java.sql.Connection;
public DataSource getDataSource() {
return datasource;
}
+
+ public Dialect getDialect() {
+ return new Derby();
+ }
}
import org.apache.ibatis.mapping.Environment;
import org.apache.ibatis.session.*;
import org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory;
+import org.sonar.api.BatchComponent;
+import org.sonar.api.ServerComponent;
import org.sonar.persistence.model.Duplication;
import org.sonar.persistence.model.DuplicationMapper;
import org.sonar.persistence.model.Rule;
import java.io.IOException;
import java.io.InputStream;
-public class MyBatis {
+public class MyBatis implements BatchComponent, ServerComponent {
private Database database;
private SqlSessionFactory sessionFactory;
-- Version 2.11
-- All the rows inserted during Rails migrations. Rows inserted during server startup tasks (Java) are excluded : rules, profiles, metrics, ...
--- Note: do not split a request on multiple lines.
+-- Note: do not split a request on multiple lines and do not end with ;
INSERT INTO ACTIVE_DASHBOARDS(ID, DASHBOARD_ID, USER_ID, ORDER_INDEX) VALUES (1, 1, null, 1)
ALTER TABLE ACTIVE_DASHBOARDS ALTER COLUMN ID RESTART WITH 2
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 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
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), "VALUE_TYPE" VARCHAR(20))
-CREATE TABLE "EVENTS" ("ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), "NAME" VARCHAR(50), "RESOURCE_ID" INTEGER, "SNAPSHOT_ID" INTEGER, "CATEGORY" VARCHAR(50), "EVENT_DATE" TIMESTAMP, "CREATED_AT" TIMESTAMP, "DESCRIPTION" VARCHAR(3072), "DATA" 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))
*/
package org.sonar.persistence;
+import org.apache.commons.dbcp.BasicDataSource;
import org.hamcrest.core.Is;
import org.junit.Test;
import org.sonar.api.config.Settings;
+import java.sql.DriverManager;
+import java.sql.SQLException;
import java.util.Properties;
import static org.junit.Assert.assertThat;
}
@Test
- public void shouldGetCommonsDbcpProperties() {
- Settings settings = new Settings();
- settings.setProperty("sonar.jdbc.driverClassName", "my.Driver");
- settings.setProperty("sonar.jdbc.username", "me");
- settings.setProperty("sonar.jdbc.maxActive", "5");
-
- DefaultDatabase db = new DefaultDatabase(settings);
- Properties props = db.getCommonsDbcpProperties();
+ public void shouldExtractCommonsDbcpProperties() {
+ Properties props = new Properties();
+ props.setProperty("sonar.jdbc.driverClassName", "my.Driver");
+ props.setProperty("sonar.jdbc.username", "me");
+ props.setProperty("sonar.jdbc.maxActive", "5");
- assertThat(props.getProperty("username"), Is.is("me"));
- assertThat(props.getProperty("driverClassName"), Is.is("my.Driver"));
- assertThat(props.getProperty("maxActive"), Is.is("5"));
+ Properties commonsDbcpProps = DefaultDatabase.extractCommonsDbcpProperties(props);
- // default value
- assertThat(props.getProperty("password"), Is.is("sonar"));
+ assertThat(commonsDbcpProps.getProperty("username"), Is.is("me"));
+ assertThat(commonsDbcpProps.getProperty("driverClassName"), Is.is("my.Driver"));
+ assertThat(commonsDbcpProps.getProperty("maxActive"), Is.is("5"));
}
@Test
public void shouldCompleteProperties() {
Settings settings = new Settings();
- DefaultDatabase db = new DefaultDatabase(settings){
+ DefaultDatabase db = new DefaultDatabase(settings) {
@Override
protected void doCompleteProperties(Properties properties) {
properties.setProperty("sonar.jdbc.maxActive", "2");
assertThat(props.getProperty("sonar.jdbc.maxActive"), Is.is("2"));
}
+
+ @Test
+ public void shouldStart() throws SQLException {
+ Settings settings = new Settings();
+ settings.setProperty("sonar.jdbc.url", "jdbc:derby:memory:sonar;create=true;user=sonar;password=sonar");
+ settings.setProperty("sonar.jdbc.driverClassName", "org.apache.derby.jdbc.EmbeddedDriver");
+ settings.setProperty("sonar.jdbc.username", "sonar");
+ settings.setProperty("sonar.jdbc.password", "sonar");
+ settings.setProperty("sonar.jdbc.maxActive", "1");
+
+ try {
+ DefaultDatabase db = new DefaultDatabase(settings);
+ db.start();
+
+ assertThat(db.getDialect().getId(), Is.is("derby"));
+ assertThat(((BasicDataSource) db.getDataSource()).getMaxActive(), Is.is(1));
+ } finally {
+ try {
+ DriverManager.getConnection("jdbc:derby:memory:sonar;drop=true");
+ } catch (Exception e) {
+ // silently ignore
+ }
+ }
+ }
}
import org.sonar.jpa.dao.ProfilesDao;
import org.sonar.jpa.dao.RulesDao;
import org.sonar.jpa.session.*;
+import org.sonar.persistence.DatabaseMigrator;
import org.sonar.persistence.DefaultDatabase;
import org.sonar.persistence.MyBatis;
import org.sonar.server.charts.ChartFactory;
rootContainer.addSingleton(MyBatis.class);
rootContainer.addSingleton(DefaultDatabaseConnector.class);
rootContainer.addSingleton(DefaultServerUpgradeStatus.class);
+ rootContainer.addSingleton(DatabaseMigrator.class);
rootContainer.startComponents();
}
import org.sonar.jpa.dialect.Dialect;
import org.sonar.jpa.session.DatabaseConnector;
import org.sonar.markdown.Markdown;
+import org.sonar.persistence.Database;
+import org.sonar.persistence.DatabaseMigrator;
import org.sonar.server.platform.ServerSettings;
import org.sonar.server.configuration.Backup;
import org.sonar.server.configuration.ProfilesManager;
public Collection<Language> getLanguages() {
return getContainer().getComponentsByType(Language.class);
}
-
+
public Dialect getDialect() {
- return getContainer().getComponentByType(DatabaseConnector.class).getDialect();
+ return getContainer().getComponentByType(Database.class).getDialect();
+ }
+
+ public boolean createDatabase() {
+ return getContainer().getComponentByType(DatabaseMigrator.class).createDatabase();
}
/* PROFILES CONSOLE : RULES AND METRIC THRESHOLDS */
-Don't forget that index name limited to 30 characters in Oracle DB.
+HOW TO ADD A MIGRATION
-Prefer to add nullable columns to avoid problems during 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
+ + complete sonar-core/src/main/resources/org/sonar/persistence/rows-derby.ddl :
+ - add "INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('<THE MIGRATION ID>')"
+* Update the migration id defined in sonar-core/src/main/java/org/sonar/jpa/entity/SchemaMigration.java
+* To be removed soon : complete sonar-testing-harness/src/main/resources/org/sonar/test/persistence/sonar-test.ddl
-After adding migration script - don't forget to update sonar-core/src/main/java/org/sonar/jpa/entity/SchemaMigration.java and ../structure/derby.*
+
+
+
+RECOMMANDATIONS
+
+* Don't forget that index name limited to 30 characters in Oracle DB.
+* Prefer to add nullable columns to avoid problems during migration.
\ No newline at end of file
+++ /dev/null
--- 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 "SONAR"."QUALITY_MODELS" ("ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), "NAME" VARCHAR(100));
-
-CREATE TABLE "SONAR"."GROUPS_USERS" ("USER_ID" INTEGER, "GROUP_ID" INTEGER);
-
-CREATE TABLE "SONAR"."CHARACTERISTIC_EDGES" ("CHILD_ID" INTEGER, "PARENT_ID" INTEGER);
-
-CREATE TABLE "SONAR"."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" SMALLINT);
-
-CREATE TABLE "SONAR"."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 "SONAR"."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" SMALLINT);
-
-CREATE TABLE "SONAR"."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 "SONAR"."RULES_PROFILES" ("ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), "NAME" VARCHAR(100) NOT NULL, "DEFAULT_PROFILE" SMALLINT DEFAULT 0, "PROVIDED" SMALLINT NOT NULL DEFAULT 0, "LANGUAGE" VARCHAR(16), "PARENT_NAME" VARCHAR(100), "ENABLED" SMALLINT NOT NULL DEFAULT 1, "VERSION" INTEGER DEFAULT 1, "USED_PROFILE" SMALLINT DEFAULT 0);
-
-CREATE TABLE "SONAR"."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" SMALLINT, "CREATED_AT" TIMESTAMP, "UPDATED_AT" TIMESTAMP);
-
-CREATE TABLE "SONAR"."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" SMALLINT);
-
-CREATE TABLE "SONAR"."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 "SONAR"."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 "SONAR"."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 "SONAR"."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" SMALLINT NOT NULL DEFAULT 0, "SCOPE" VARCHAR(3), "QUALIFIER" VARCHAR(3), "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 "SONAR"."SCHEMA_MIGRATIONS" ("VERSION" VARCHAR(256) NOT NULL);
-
-CREATE TABLE "SONAR"."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 "SONAR"."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" SMALLINT, "CARDINALITY" VARCHAR(10), "PARENT_ID" INTEGER, "PLUGIN_CONFIG_KEY" VARCHAR(500), "NAME" VARCHAR(200));
-
-CREATE TABLE "SONAR"."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), "VALUE_TYPE" VARCHAR(20));
-
-CREATE TABLE "SONAR"."EVENTS" ("ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), "NAME" VARCHAR(50), "RESOURCE_ID" INTEGER, "SNAPSHOT_ID" INTEGER, "CATEGORY" VARCHAR(50), "EVENT_DATE" TIMESTAMP, "CREATED_AT" TIMESTAMP, "DESCRIPTION" VARCHAR(3072), "DATA" VARCHAR(4000));
-
-CREATE TABLE "SONAR"."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 "SONAR"."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 "SONAR"."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 "SONAR"."DUPLICATIONS_INDEX" ("ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), "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 "SONAR"."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 "SONAR"."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" SMALLINT, "OLD_SEVERITY" INTEGER, "NEW_SEVERITY" INTEGER);
-
-CREATE TABLE "SONAR"."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 "SONAR"."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 "SONAR"."PROJECTS" ("ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), "NAME" VARCHAR(256), "DESCRIPTION" VARCHAR(2000), "ENABLED" SMALLINT NOT NULL DEFAULT 1, "SCOPE" VARCHAR(3), "QUALIFIER" VARCHAR(3), "KEE" VARCHAR(400), "ROOT_ID" INTEGER, "PROFILE_ID" INTEGER, "LANGUAGE" VARCHAR(5), "COPY_RESOURCE_ID" INTEGER, "LONG_NAME" VARCHAR(256));
-
-CREATE TABLE "SONAR"."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));
-
-CREATE TABLE "SONAR"."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 "SONAR"."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 "SONAR"."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 "SONAR"."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 "SONAR"."NOTIFICATIONS" ("ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), "CREATED_AT" TIMESTAMP, "DATA" BLOB(2147483647));
-
-CREATE TABLE "SONAR"."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 "SONAR"."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 "SONAR"."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 "SONAR"."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 "SONAR"."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 "SONAR"."FILTERS" ("ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), "NAME" VARCHAR(100), "USER_ID" INTEGER, "SHARED" SMALLINT, "FAVOURITES" SMALLINT, "RESOURCE_ID" INTEGER, "DEFAULT_VIEW" VARCHAR(20), "PAGE_SIZE" INTEGER, "PERIOD_INDEX" INTEGER);
-
-CREATE TABLE "SONAR"."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" SMALLINT, "CREATED_AT" TIMESTAMP, "UPDATED_AT" TIMESTAMP);
-
-CREATE TABLE "SONAR"."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" SMALLINT);
-
-CREATE TABLE "SONAR"."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" SMALLINT NOT NULL DEFAULT 0, "VAL_TYPE" VARCHAR(8), "USER_MANAGED" SMALLINT DEFAULT 0, "ENABLED" SMALLINT DEFAULT 1, "ORIGIN" VARCHAR(3), "WORST_VALUE" DECIMAL(30,20), "BEST_VALUE" DECIMAL(30,20), "OPTIMIZED_BEST_VALUE" SMALLINT, "HIDDEN" SMALLINT);
-
--- ----------------------------------------------
--- DDL Statements for indexes
--- ----------------------------------------------
-
-CREATE INDEX "SONAR"."GROUP_ROLES_RESOURCE" ON "SONAR"."GROUP_ROLES" ("RESOURCE_ID");
-
-CREATE INDEX "SONAR"."GROUP_ROLES_GROUP" ON "SONAR"."GROUP_ROLES" ("GROUP_ID");
-
-CREATE INDEX "SONAR"."USER_ROLES_RESOURCE" ON "SONAR"."USER_ROLES" ("RESOURCE_ID");
-
-CREATE INDEX "SONAR"."USER_ROLES_USER" ON "SONAR"."USER_ROLES" ("USER_ID");
-
-CREATE INDEX "SONAR"."DUPLICATIONS_INDEX_HASH" ON "SONAR"."DUPLICATIONS_INDEX" ("HASH");
-
-CREATE INDEX "SONAR"."DUPLICATIONS_INDEX_SID" ON "SONAR"."DUPLICATIONS_INDEX" ("SNAPSHOT_ID");
-
-CREATE INDEX "SONAR"."DUPLICATIONS_INDEX_PSID" ON "SONAR"."DUPLICATIONS_INDEX" ("PROJECT_SNAPSHOT_ID");
-
-CREATE INDEX "SONAR"."SNAP_SOURCES_SNAPSHOT_ID" ON "SONAR"."SNAPSHOT_SOURCES" ("SNAPSHOT_ID");
-
-CREATE INDEX "SONAR"."INDEX_GROUPS_USERS_ON_GROUP_ID" ON "SONAR"."GROUPS_USERS" ("GROUP_ID");
-
-CREATE INDEX "SONAR"."INDEX_GROUPS_USERS_ON_USER_ID" ON "SONAR"."GROUPS_USERS" ("USER_ID");
-
-CREATE INDEX "SONAR"."DEPS_TO_SID" ON "SONAR"."DEPENDENCIES" ("TO_SNAPSHOT_ID");
-
-CREATE INDEX "SONAR"."DEPS_FROM_SID" ON "SONAR"."DEPENDENCIES" ("FROM_SNAPSHOT_ID");
-
-CREATE INDEX "SONAR"."MEASURES_SID_METRIC" ON "SONAR"."PROJECT_MEASURES" ("SNAPSHOT_ID", "METRIC_ID");
-
-CREATE INDEX "SONAR"."ACTIVE_RULE_CHANGES_PID" ON "SONAR"."ACTIVE_RULE_CHANGES" ("PROFILE_ID");
-
-CREATE INDEX "SONAR"."CHARACTERISTIC_PROPERTIES_CID" ON "SONAR"."CHARACTERISTIC_PROPERTIES" ("CHARACTERISTIC_ID");
-
-CREATE UNIQUE INDEX "SONAR"."METRICS_UNIQUE_NAME" ON "SONAR"."METRICS" ("NAME");
-
-CREATE INDEX "SONAR"."ACTIVE_RULE_PARAM_CHANGES_CID" ON "SONAR"."ACTIVE_RULE_PARAM_CHANGES" ("ACTIVE_RULE_CHANGE_ID");
-
-CREATE INDEX "SONAR"."M_DATA_SID" ON "SONAR"."MEASURE_DATA" ("SNAPSHOT_ID");
-
-CREATE INDEX "SONAR"."MEASURE_DATA_MEASURE_ID" ON "SONAR"."MEASURE_DATA" ("MEASURE_ID");
-
-CREATE INDEX "SONAR"."RF_PERMANENT_ID" ON "SONAR"."RULE_FAILURES" ("PERMANENT_ID");
-
-CREATE INDEX "SONAR"."RULE_FAILURE_RULE_ID" ON "SONAR"."RULE_FAILURES" ("RULE_ID");
-
-CREATE INDEX "SONAR"."RULE_FAILURE_SNAPSHOT_ID" ON "SONAR"."RULE_FAILURES" ("SNAPSHOT_ID");
-
-CREATE INDEX "SONAR"."EVENTS_SNAPSHOT_ID" ON "SONAR"."EVENTS" ("SNAPSHOT_ID");
-
-CREATE INDEX "SONAR"."EVENTS_RESOURCE_ID" ON "SONAR"."EVENTS" ("RESOURCE_ID");
-
-CREATE INDEX "SONAR"."WIDGETS_WIDGETKEY" ON "SONAR"."WIDGETS" ("WIDGET_KEY");
-
-CREATE INDEX "SONAR"."WIDGETS_DASHBOARDS" ON "SONAR"."WIDGETS" ("DASHBOARD_ID");
-
-CREATE INDEX "SONAR"."SNAPSHOTS_QUALIFIER" ON "SONAR"."SNAPSHOTS" ("QUALIFIER");
-
-CREATE INDEX "SONAR"."SNAPSHOTS_ROOT" ON "SONAR"."SNAPSHOTS" ("ROOT_SNAPSHOT_ID");
-
-CREATE INDEX "SONAR"."SNAPSHOTS_PARENT" ON "SONAR"."SNAPSHOTS" ("PARENT_SNAPSHOT_ID");
-
-CREATE INDEX "SONAR"."SNAPSHOT_PROJECT_ID" ON "SONAR"."SNAPSHOTS" ("PROJECT_ID");
-
-CREATE INDEX "SONAR"."RULES_PARAMETERS_RULE_ID" ON "SONAR"."RULES_PARAMETERS" ("RULE_ID");
-
-CREATE INDEX "SONAR"."ACTIVE_DASHBOARDS_DASHBOARDID" ON "SONAR"."ACTIVE_DASHBOARDS" ("DASHBOARD_ID");
-
-CREATE INDEX "SONAR"."ACTIVE_DASHBOARDS_USERID" ON "SONAR"."ACTIVE_DASHBOARDS" ("USER_ID");
-
-CREATE UNIQUE INDEX "SONAR"."UNIQUE_SCHEMA_MIGRATIONS" ON "SONAR"."SCHEMA_MIGRATIONS" ("VERSION");
-
-CREATE INDEX "SONAR"."WIDGET_PROPERTIES_WIDGETS" ON "SONAR"."WIDGET_PROPERTIES" ("WIDGET_ID");
-
-CREATE INDEX "SONAR"."PROPERTIES_KEY" ON "SONAR"."PROPERTIES" ("PROP_KEY");
-
-CREATE INDEX "SONAR"."MANUAL_MEASURES_RESOURCE_ID" ON "SONAR"."MANUAL_MEASURES" ("RESOURCE_ID");
-
-CREATE INDEX "SONAR"."PROJECTS_KEE" ON "SONAR"."PROJECTS" ("KEE");
-
--- ----------------------------------------------
--- DDL Statements for keys
--- ----------------------------------------------
-
--- primary/unique
-ALTER TABLE "SONAR"."GROUP_ROLES" ADD CONSTRAINT "SQL110927104437910" PRIMARY KEY ("ID");
-
-ALTER TABLE "SONAR"."REVIEWS" ADD CONSTRAINT "SQL110927104440700" PRIMARY KEY ("ID");
-
-ALTER TABLE "SONAR"."RULES" ADD CONSTRAINT "SQL110927104437080" PRIMARY KEY ("ID");
-
-ALTER TABLE "SONAR"."USER_ROLES" ADD CONSTRAINT "SQL110927104437940" PRIMARY KEY ("ID");
-
-ALTER TABLE "SONAR"."DUPLICATIONS_INDEX" ADD CONSTRAINT "SQL110927104441080" PRIMARY KEY ("ID");
-
-ALTER TABLE "SONAR"."SNAPSHOT_SOURCES" ADD CONSTRAINT "SQL110927104437590" PRIMARY KEY ("ID");
-
-ALTER TABLE "SONAR"."NOTIFICATIONS" ADD CONSTRAINT "SQL110927104441030" PRIMARY KEY ("ID");
-
-ALTER TABLE "SONAR"."RULES_CATEGORIES" ADD CONSTRAINT "SQL110927104437060" PRIMARY KEY ("ID");
-
-ALTER TABLE "SONAR"."DEPENDENCIES" ADD CONSTRAINT "SQL110927104438330" PRIMARY KEY ("ID");
-
-ALTER TABLE "SONAR"."PROJECT_MEASURES" ADD CONSTRAINT "SQL110927104437040" PRIMARY KEY ("ID");
-
-ALTER TABLE "SONAR"."ACTIVE_RULE_CHANGES" ADD CONSTRAINT "SQL110927104440770" PRIMARY KEY ("ID");
-
-ALTER TABLE "SONAR"."CHARACTERISTIC_PROPERTIES" ADD CONSTRAINT "SQL110927104439660" PRIMARY KEY ("ID");
-
-ALTER TABLE "SONAR"."QUALITY_MODELS" ADD CONSTRAINT "SQL110927104439440" PRIMARY KEY ("ID");
-
-ALTER TABLE "SONAR"."USERS" ADD CONSTRAINT "SQL110927104437310" PRIMARY KEY ("ID");
-
-ALTER TABLE "SONAR"."CRITERIA" ADD CONSTRAINT "SQL110927104438720" PRIMARY KEY ("ID");
-
-ALTER TABLE "SONAR"."METRICS" ADD CONSTRAINT "SQL110927104436990" PRIMARY KEY ("ID");
-
-ALTER TABLE "SONAR"."ACTIVE_RULE_PARAM_CHANGES" ADD CONSTRAINT "SQL110927104440790" PRIMARY KEY ("ID");
-
-ALTER TABLE "SONAR"."MEASURE_DATA" ADD CONSTRAINT "SQL110927104437810" PRIMARY KEY ("ID");
-
-ALTER TABLE "SONAR"."RULE_FAILURES" ADD CONSTRAINT "SQL110927104437100" PRIMARY KEY ("ID");
-
-ALTER TABLE "SONAR"."EVENTS" ADD CONSTRAINT "SQL110927104437690" PRIMARY KEY ("ID");
-
-ALTER TABLE "SONAR"."WIDGETS" ADD CONSTRAINT "SQL110927104439750" PRIMARY KEY ("ID");
-
-ALTER TABLE "SONAR"."SNAPSHOTS" ADD CONSTRAINT "SQL110927104436960" PRIMARY KEY ("ID");
-
-ALTER TABLE "SONAR"."ACTIVE_RULES" ADD CONSTRAINT "SQL110927104437550" PRIMARY KEY ("ID");
-
-ALTER TABLE "SONAR"."CHARACTERISTICS" ADD CONSTRAINT "SQL110927104439450" PRIMARY KEY ("ID");
-
-ALTER TABLE "SONAR"."RULES_PARAMETERS" ADD CONSTRAINT "SQL110927104437130" PRIMARY KEY ("ID");
-
-ALTER TABLE "SONAR"."ACTIVE_FILTERS" ADD CONSTRAINT "SQL110927104438740" PRIMARY KEY ("ID");
-
-ALTER TABLE "SONAR"."ACTIVE_DASHBOARDS" ADD CONSTRAINT "SQL110927104439710" PRIMARY KEY ("ID");
-
-ALTER TABLE "SONAR"."FILTER_COLUMNS" ADD CONSTRAINT "SQL110927104438710" PRIMARY KEY ("ID");
-
-ALTER TABLE "SONAR"."REVIEW_COMMENTS" ADD CONSTRAINT "SQL110927104440710" PRIMARY KEY ("ID");
-
-ALTER TABLE "SONAR"."WIDGET_PROPERTIES" ADD CONSTRAINT "SQL110927104439770" PRIMARY KEY ("ID");
-
-ALTER TABLE "SONAR"."PROPERTIES" ADD CONSTRAINT "SQL110927104437750" PRIMARY KEY ("ID");
-
-ALTER TABLE "SONAR"."DASHBOARDS" ADD CONSTRAINT "SQL110927104439740" PRIMARY KEY ("ID");
-
-ALTER TABLE "SONAR"."GROUPS" ADD CONSTRAINT "SQL110927104437850" PRIMARY KEY ("ID");
-
-ALTER TABLE "SONAR"."PROJECT_LINKS" ADD CONSTRAINT "SQL110927104437150" PRIMARY KEY ("ID");
-
-ALTER TABLE "SONAR"."FILTERS" ADD CONSTRAINT "SQL110927104438690" PRIMARY KEY ("ID");
-
-ALTER TABLE "SONAR"."MANUAL_MEASURES" ADD CONSTRAINT "SQL110927104440930" PRIMARY KEY ("ID");
-
-ALTER TABLE "SONAR"."ALERTS" ADD CONSTRAINT "SQL110927104437730" PRIMARY KEY ("ID");
-
-ALTER TABLE "SONAR"."PROJECTS" ADD CONSTRAINT "SQL110927104436930" PRIMARY KEY ("ID");
-
-ALTER TABLE "SONAR"."RULES_PROFILES" ADD CONSTRAINT "SQL110927104437540" PRIMARY KEY ("ID");
-
-ALTER TABLE "SONAR"."ACTIVE_RULE_PARAMETERS" ADD CONSTRAINT "SQL110927104437560" PRIMARY KEY ("ID");
\ No newline at end of file
+++ /dev/null
--- Version 2.11
-
--- All the rows inserted during Rails migrations. Rows inserted during server startup tasks (Java) are excluded : rules, profiles, metrics, ...
--- Note: do not split a request on multiple lines.
-INSERT INTO SONAR.ACTIVE_DASHBOARDS(ID, DASHBOARD_ID, USER_ID, ORDER_INDEX) VALUES (1, 1, null, 1);
-ALTER TABLE SONAR.ACTIVE_DASHBOARDS ALTER COLUMN ID RESTART WITH 2;
-
-INSERT INTO SONAR.ACTIVE_FILTERS(ID, FILTER_ID, USER_ID, ORDER_INDEX) VALUES (1, 1, null, 1);
-INSERT INTO SONAR.ACTIVE_FILTERS(ID, FILTER_ID, USER_ID, ORDER_INDEX) VALUES (2, 2, null, 2);
-INSERT INTO SONAR.ACTIVE_FILTERS(ID, FILTER_ID, USER_ID, ORDER_INDEX) VALUES (3, 3, null, 3);
-ALTER TABLE SONAR.ACTIVE_FILTERS ALTER COLUMN ID RESTART WITH 4;
-
-INSERT INTO SONAR.CRITERIA(ID, FILTER_ID, FAMILY, KEE, OPERATOR, VALUE, TEXT_VALUE, VARIATION) VALUES (1, 1, 'qualifier', null, '=', null, 'TRK', null);
-INSERT INTO SONAR.CRITERIA(ID, FILTER_ID, FAMILY, KEE, OPERATOR, VALUE, TEXT_VALUE, VARIATION) VALUES (2, 2, 'qualifier', null, '=', null, 'TRK', null);
-INSERT INTO SONAR.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 SONAR.CRITERIA ALTER COLUMN ID RESTART WITH 4;
-
-INSERT INTO SONAR.DASHBOARDS(ID, USER_ID, NAME, DESCRIPTION, COLUMN_LAYOUT, SHARED, CREATED_AT, UPDATED_AT) VALUES (1, null, 'Dashboard', 'Default dashboard', '50%-50%', 1, '2011-09-26 22:27:55.0', '2011-09-26 22:27:55.0');
-ALTER TABLE SONAR.DASHBOARDS ALTER COLUMN ID RESTART WITH 2;
-
-INSERT INTO SONAR.FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (1, 1, 'metric', 'alert_status', null, 1, null);
-INSERT INTO SONAR.FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (2, 1, 'name', null, 'ASC', 2, null);
-INSERT INTO SONAR.FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (3, 1, 'version', null, null, 3, null);
-INSERT INTO SONAR.FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (4, 1, 'metric', 'ncloc', null, 4, null);
-INSERT INTO SONAR.FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (5, 1, 'metric', 'violations_density', null, 5, null);
-INSERT INTO SONAR.FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (6, 1, 'date', null, null, 6, null)
-INSERT INTO SONAR.FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (7, 1, 'links', null, null, 7, null)
-INSERT INTO SONAR.FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (8, 2, 'name', null, 'ASC', 1, null)
-INSERT INTO SONAR.FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (9, 2, 'metric', 'ncloc', null, 2, null)
-INSERT INTO SONAR.FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (10, 2, 'metric', 'violations_density', null, 3, null)
-INSERT INTO SONAR.FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (11, 3, 'metric', 'alert_status', null, 1, null)
-INSERT INTO SONAR.FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (12, 3, 'name', null, 'ASC', 2, null)
-INSERT INTO SONAR.FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (13, 3, 'metric', 'ncloc', null, 3, null)
-INSERT INTO SONAR.FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (14, 3, 'metric', 'violations_density', null, 4, null)
-INSERT INTO SONAR.FILTER_COLUMNS(ID, FILTER_ID, FAMILY, KEE, SORT_DIRECTION, ORDER_INDEX, VARIATION) VALUES (15, 3, 'date', null, null, 5, null)
-ALTER TABLE SONAR.FILTER_COLUMNS ALTER COLUMN ID RESTART WITH 16;
-
-INSERT INTO SONAR.FILTERS(ID, NAME, USER_ID, SHARED, FAVOURITES, RESOURCE_ID, DEFAULT_VIEW, PAGE_SIZE, PERIOD_INDEX) VALUES (1, 'Projects', null, 1, 0, null, 'list', null, null)
-INSERT INTO SONAR.FILTERS(ID, NAME, USER_ID, SHARED, FAVOURITES, RESOURCE_ID, DEFAULT_VIEW, PAGE_SIZE, PERIOD_INDEX) VALUES (2, 'Treemap', null, 1, 0, null, 'treemap', null, null)
-INSERT INTO SONAR.FILTERS(ID, NAME, USER_ID, SHARED, FAVOURITES, RESOURCE_ID, DEFAULT_VIEW, PAGE_SIZE, PERIOD_INDEX) VALUES (3, 'My favourites', null, 1, 1, null, 'list', null, null)
-ALTER TABLE SONAR.FILTERS ALTER COLUMN ID RESTART WITH 4;
-
-INSERT INTO SONAR.GROUP_ROLES(ID, GROUP_ID, RESOURCE_ID, ROLE) VALUES (1, 1, null, 'admin')
-INSERT INTO SONAR.GROUP_ROLES(ID, GROUP_ID, RESOURCE_ID, ROLE) VALUES (2, 1, null, 'default-admin')
-INSERT INTO SONAR.GROUP_ROLES(ID, GROUP_ID, RESOURCE_ID, ROLE) VALUES (3, 2, null, 'default-user')
-INSERT INTO SONAR.GROUP_ROLES(ID, GROUP_ID, RESOURCE_ID, ROLE) VALUES (4, null, null, 'default-user')
-INSERT INTO SONAR.GROUP_ROLES(ID, GROUP_ID, RESOURCE_ID, ROLE) VALUES (5, 2, null, 'default-codeviewer')
-INSERT INTO SONAR.GROUP_ROLES(ID, GROUP_ID, RESOURCE_ID, ROLE) VALUES (6, null, null, 'default-codeviewer')
-ALTER TABLE SONAR.GROUP_ROLES ALTER COLUMN ID RESTART WITH 7;
-
-INSERT INTO SONAR.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 SONAR.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 SONAR.GROUPS ALTER COLUMN ID RESTART WITH 3;
-
-INSERT INTO SONAR.GROUPS_USERS(USER_ID, GROUP_ID) VALUES (1, 1)
-INSERT INTO SONAR.GROUPS_USERS(USER_ID, GROUP_ID) VALUES (1, 2)
-
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('1')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('2')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('10')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('11')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('13')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('14')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('16')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('35')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('36')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('39')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('41')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('46')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('48')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('49')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('51')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('52')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('53')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('54')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('55')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('57')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('58')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('59')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('60')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('61')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('62')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('66')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('68')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('69')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('72')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('73')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('75')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('76')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('77')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('78')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('79')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('80')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('81')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('82')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('84')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('85')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('86')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('87')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('88')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('89')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('90')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('91')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('92')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('93')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('94')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('95')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('96')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('97')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('98')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('99')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('100')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('101')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('110')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('111')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('112')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('113')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('114')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('115')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('116')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('117')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('118')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('119')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('120')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('131')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('132')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('133')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('134')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('135')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('136')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('137')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('138')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('139')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('140')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('141')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('142')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('150')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('151')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('160')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('162')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('163')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('165')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('166')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('167')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('168')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('169')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('170')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('180')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('181')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('190')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('191')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('200')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('201')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('202')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('203')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('210')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('211')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('212')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('213')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('214')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('215')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('216')
-INSERT INTO SONAR.SCHEMA_MIGRATIONS(VERSION) VALUES ('217')
-
-INSERT INTO SONAR.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 SONAR.USERS ALTER COLUMN ID RESTART WITH 2;
-
-INSERT INTO SONAR.WIDGETS(ID, DASHBOARD_ID, WIDGET_KEY, NAME, DESCRIPTION, COLUMN_INDEX, ROW_INDEX, CONFIGURED, CREATED_AT, UPDATED_AT) VALUES (1, 1, 'size', 'Size metrics', null, 1, 1, 1, '2011-09-26 22:27:55.0', '2011-09-26 22:27:55.0')
-INSERT INTO SONAR.WIDGETS(ID, DASHBOARD_ID, WIDGET_KEY, NAME, DESCRIPTION, COLUMN_INDEX, ROW_INDEX, CONFIGURED, CREATED_AT, UPDATED_AT) VALUES (2, 1, 'comments_duplications', 'Comments duplications', null, 1, 2, 1, '2011-09-26 22:27:55.0', '2011-09-26 22:27:55.0')
-INSERT INTO SONAR.WIDGETS(ID, DASHBOARD_ID, WIDGET_KEY, NAME, DESCRIPTION, COLUMN_INDEX, ROW_INDEX, CONFIGURED, CREATED_AT, UPDATED_AT) VALUES (3, 1, 'complexity', 'Complexity', null, 1, 3, 1, '2011-09-26 22:27:55.0', '2011-09-26 22:27:55.0')
-INSERT INTO SONAR.WIDGETS(ID, DASHBOARD_ID, WIDGET_KEY, NAME, DESCRIPTION, COLUMN_INDEX, ROW_INDEX, CONFIGURED, CREATED_AT, UPDATED_AT) VALUES (4, 1, 'code_coverage', 'Code coverage', null, 1, 4, 1, '2011-09-26 22:27:55.0', '2011-09-26 22:27:55.0');
-INSERT INTO SONAR.WIDGETS(ID, DASHBOARD_ID, WIDGET_KEY, NAME, DESCRIPTION, COLUMN_INDEX, ROW_INDEX, CONFIGURED, CREATED_AT, UPDATED_AT) VALUES (5, 1, 'events', 'Events', null, 1, 5, 1, '2011-09-26 22:27:56.0', '2011-09-26 22:27:56.0');
-INSERT INTO SONAR.WIDGETS(ID, DASHBOARD_ID, WIDGET_KEY, NAME, DESCRIPTION, COLUMN_INDEX, ROW_INDEX, CONFIGURED, CREATED_AT, UPDATED_AT) VALUES (6, 1, 'description', 'Description', null, 1, 6, 1, '2011-09-26 22:27:56.0', '2011-09-26 22:27:56.0');
-INSERT INTO SONAR.WIDGETS(ID, DASHBOARD_ID, WIDGET_KEY, NAME, DESCRIPTION, COLUMN_INDEX, ROW_INDEX, CONFIGURED, CREATED_AT, UPDATED_AT) VALUES (7, 1, 'rules', 'Rules', null, 2, 1, 1, '2011-09-26 22:27:56.0', '2011-09-26 22:27:56.0');
-INSERT INTO SONAR.WIDGETS(ID, DASHBOARD_ID, WIDGET_KEY, NAME, DESCRIPTION, COLUMN_INDEX, ROW_INDEX, CONFIGURED, CREATED_AT, UPDATED_AT) VALUES (8, 1, 'alerts', 'Alerts', null, 2, 2, 1, '2011-09-26 22:27:56.0', '2011-09-26 22:27:56.0');
-INSERT INTO SONAR.WIDGETS(ID, DASHBOARD_ID, WIDGET_KEY, NAME, DESCRIPTION, COLUMN_INDEX, ROW_INDEX, CONFIGURED, CREATED_AT, UPDATED_AT) VALUES (9, 1, 'file_design', 'File design', null, 2, 3, 1, '2011-09-26 22:27:56.0', '2011-09-26 22:27:56.0');
-INSERT INTO SONAR.WIDGETS(ID, DASHBOARD_ID, WIDGET_KEY, NAME, DESCRIPTION, COLUMN_INDEX, ROW_INDEX, CONFIGURED, CREATED_AT, UPDATED_AT) VALUES (10, 1, 'package_design', 'Package design', null, 2, 4, 1, '2011-09-26 22:27:56.0', '2011-09-26 22:27:56.0');
-INSERT INTO SONAR.WIDGETS(ID, DASHBOARD_ID, WIDGET_KEY, NAME, DESCRIPTION, COLUMN_INDEX, ROW_INDEX, CONFIGURED, CREATED_AT, UPDATED_AT) VALUES (11, 1, 'ckjm', 'CKJM', null, 2, 5, 1, '2011-09-26 22:27:56.0', '2011-09-26 22:27:56.0');
-ALTER TABLE SONAR.WIDGETS ALTER COLUMN ID RESTART WITH 12;
end
def self.automatic_setup
- if !production?
- puts 'Derby database should be used for evaluation purpose only'
- end
if current_version<=0
try_restore_structure_dump() if use_structure_dump?
upgrade_and_start()
end
def self.try_restore_structure_dump()
- begin
- ddl=IO.readlines("#{RAILS_ROOT}/db/structure/#{dialect}.ddl")
- sql=IO.readlines("#{RAILS_ROOT}/db/structure/#{dialect}.sql")
-
- puts "Restore database structure & data"
- execute_sql_requests(ddl)
- execute_sql_requests(sql)
- puts "Database created"
- rescue
- # file not found
- nil
- end
+ ::Java::OrgSonarServerUi::JRubyFacade.getInstance().createDatabase()
end
def self.execute_sql_requests(requests)