code review fixes
This commit is contained in:
parent
92b78a5413
commit
2adb39ba6c
@ -151,7 +151,6 @@ quota:
|
||||
# Enable Host API Limits
|
||||
enabled: "${QUOTA_TENANT_ENABLED:false}"
|
||||
# Array of whitelist tenants
|
||||
# Array of whitelist tenants
|
||||
whitelist: "${QUOTA_TENANT_WHITELIST:}"
|
||||
# Array of blacklist tenants
|
||||
blacklist: "${QUOTA_HOST_BLACKLIST:}"
|
||||
@ -160,11 +159,10 @@ quota:
|
||||
intervalMin: 2
|
||||
|
||||
database:
|
||||
type: "${DATABASE_TYPE:sql}" # cassandra OR sql
|
||||
entities:
|
||||
type: "${DATABASE_TYPE:sql}" # cassandra OR sql
|
||||
type: "${DATABASE_TS_TYPE:sql}" # cassandra OR sql
|
||||
ts:
|
||||
type: "${DATABASE_TYPE:sql}" # cassandra OR sql (for hybrid mode, only this value should be cassandra)
|
||||
type: "${DATABASE_CASSANDRA_TYPE:sql}" # cassandra OR sql (for hybrid mode, only this value should be cassandra)
|
||||
|
||||
|
||||
# Cassandra driver configuration parameters
|
||||
|
||||
@ -32,7 +32,8 @@ public class ControllerNoSqlTestSuite {
|
||||
public static CustomCassandraCQLUnit cassandraUnit =
|
||||
new CustomCassandraCQLUnit(
|
||||
Arrays.asList(
|
||||
new ClassPathCQLDataSet("cassandra/schema.cql", false, false),
|
||||
new ClassPathCQLDataSet("cassandra/schema-ts.cql", false, false),
|
||||
new ClassPathCQLDataSet("cassandra/schema-entities.cql", false, false),
|
||||
new ClassPathCQLDataSet("cassandra/system-data.cql", false, false),
|
||||
new ClassPathCQLDataSet("cassandra/system-test.cql", false, false)),
|
||||
"cassandra-test.yaml", 30000l);
|
||||
|
||||
@ -30,7 +30,7 @@ public class ControllerSqlTestSuite {
|
||||
|
||||
@ClassRule
|
||||
public static CustomSqlUnit sqlUnit = new CustomSqlUnit(
|
||||
Arrays.asList("sql/schema.sql", "sql/system-data.sql"),
|
||||
Arrays.asList("sql/schema-ts.sql", "sql/schema-entities.sql", "sql/system-data.sql"),
|
||||
"sql/drop-all-tables.sql",
|
||||
"sql-test.properties");
|
||||
}
|
||||
|
||||
@ -32,7 +32,8 @@ public class MqttNoSqlTestSuite {
|
||||
public static CustomCassandraCQLUnit cassandraUnit =
|
||||
new CustomCassandraCQLUnit(
|
||||
Arrays.asList(
|
||||
new ClassPathCQLDataSet("cassandra/schema.cql", false, false),
|
||||
new ClassPathCQLDataSet("cassandra/schema-ts.cql", false, false),
|
||||
new ClassPathCQLDataSet("cassandra/schema-entities.cql", false, false),
|
||||
new ClassPathCQLDataSet("cassandra/system-data.cql", false, false)),
|
||||
"cassandra-test.yaml", 30000l);
|
||||
}
|
||||
|
||||
@ -15,11 +15,9 @@
|
||||
*/
|
||||
package org.thingsboard.server.mqtt;
|
||||
|
||||
import org.cassandraunit.dataset.cql.ClassPathCQLDataSet;
|
||||
import org.junit.ClassRule;
|
||||
import org.junit.extensions.cpsuite.ClasspathSuite;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.thingsboard.server.dao.CustomCassandraCQLUnit;
|
||||
import org.thingsboard.server.dao.CustomSqlUnit;
|
||||
|
||||
import java.util.Arrays;
|
||||
@ -31,7 +29,7 @@ public class MqttSqlTestSuite {
|
||||
|
||||
@ClassRule
|
||||
public static CustomSqlUnit sqlUnit = new CustomSqlUnit(
|
||||
Arrays.asList("sql/schema.sql", "sql/system-data.sql"),
|
||||
Arrays.asList("sql/schema-ts.sql", "sql/schema-entities.sql", "sql/system-data.sql"),
|
||||
"sql/drop-all-tables.sql",
|
||||
"sql-test.properties");
|
||||
}
|
||||
|
||||
@ -35,7 +35,8 @@ public class RuleEngineNoSqlTestSuite {
|
||||
public static CustomCassandraCQLUnit cassandraUnit =
|
||||
new CustomCassandraCQLUnit(
|
||||
Arrays.asList(
|
||||
new ClassPathCQLDataSet("cassandra/schema.cql", false, false),
|
||||
new ClassPathCQLDataSet("cassandra/schema-ts.cql", false, false),
|
||||
new ClassPathCQLDataSet("cassandra/schema-entities.cql", false, false),
|
||||
new ClassPathCQLDataSet("cassandra/system-data.cql", false, false)),
|
||||
"cassandra-test.yaml", 30000l);
|
||||
|
||||
|
||||
@ -30,7 +30,7 @@ public class RuleEngineSqlTestSuite {
|
||||
|
||||
@ClassRule
|
||||
public static CustomSqlUnit sqlUnit = new CustomSqlUnit(
|
||||
Arrays.asList("sql/schema.sql", "sql/system-data.sql"),
|
||||
Arrays.asList("sql/schema-ts.sql", "sql/schema-entities.sql", "sql/system-data.sql"),
|
||||
"sql/drop-all-tables.sql",
|
||||
"sql-test.properties");
|
||||
}
|
||||
|
||||
@ -34,7 +34,8 @@ public class SystemNoSqlTestSuite {
|
||||
public static CustomCassandraCQLUnit cassandraUnit =
|
||||
new CustomCassandraCQLUnit(
|
||||
Arrays.asList(
|
||||
new ClassPathCQLDataSet("cassandra/schema.cql", false, false),
|
||||
new ClassPathCQLDataSet("cassandra/schema-ts.cql", false, false),
|
||||
new ClassPathCQLDataSet("cassandra/schema-entities.cql", false, false),
|
||||
new ClassPathCQLDataSet("cassandra/system-data.cql", false, false)),
|
||||
"cassandra-test.yaml", 30000l);
|
||||
}
|
||||
|
||||
@ -31,7 +31,7 @@ public class SystemSqlTestSuite {
|
||||
|
||||
@ClassRule
|
||||
public static CustomSqlUnit sqlUnit = new CustomSqlUnit(
|
||||
Arrays.asList("sql/schema.sql", "sql/system-data.sql"),
|
||||
Arrays.asList("sql/schema-ts.sql", "sql/schema-entities.sql", "sql/system-data.sql"),
|
||||
"sql/drop-all-tables.sql",
|
||||
"sql-test.properties");
|
||||
|
||||
|
||||
@ -1,22 +0,0 @@
|
||||
/**
|
||||
* Copyright © 2016-2018 The Thingsboard Authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.thingsboard.server.dao.util;
|
||||
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
|
||||
|
||||
@ConditionalOnExpression("'${database.entity.type}'=='sql' && '${database.ts.type}'=='cassandra'")
|
||||
public @interface HybridDao {
|
||||
}
|
||||
@ -17,6 +17,6 @@ package org.thingsboard.server.dao.util;
|
||||
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
|
||||
|
||||
@ConditionalOnExpression("'${database.type}'=='cassandra' || '${database.ts.type}'=='cassandra'")
|
||||
@ConditionalOnExpression("'${database.ts.type}'=='cassandra' || '${database.entities.type}'=='cassandra'")
|
||||
public @interface NoSqlAnyDao {
|
||||
}
|
||||
|
||||
@ -17,6 +17,6 @@ package org.thingsboard.server.dao.util;
|
||||
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
|
||||
@ConditionalOnProperty(prefix = "database", value = "type", havingValue = "cassandra")
|
||||
@ConditionalOnProperty(prefix = "database.entities", value = "type", havingValue = "cassandra")
|
||||
public @interface NoSqlDao {
|
||||
}
|
||||
|
||||
@ -17,6 +17,6 @@ package org.thingsboard.server.dao.util;
|
||||
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
|
||||
@ConditionalOnProperty(prefix = "database", value = "type", havingValue = "sql")
|
||||
@ConditionalOnProperty(prefix = "database.entities", value = "type", havingValue = "sql")
|
||||
public @interface SqlDao {
|
||||
}
|
||||
|
||||
@ -1,640 +0,0 @@
|
||||
--
|
||||
-- Copyright © 2016-2018 The Thingsboard Authors
|
||||
--
|
||||
-- Licensed under the Apache License, Version 2.0 (the "License");
|
||||
-- you may not use this file except in compliance with the License.
|
||||
-- You may obtain a copy of the License at
|
||||
--
|
||||
-- http://www.apache.org/licenses/LICENSE-2.0
|
||||
--
|
||||
-- Unless required by applicable law or agreed to in writing, software
|
||||
-- distributed under the License is distributed on an "AS IS" BASIS,
|
||||
-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
-- See the License for the specific language governing permissions and
|
||||
-- limitations under the License.
|
||||
--
|
||||
|
||||
CREATE KEYSPACE IF NOT EXISTS thingsboard
|
||||
WITH replication = {
|
||||
'class' : 'SimpleStrategy',
|
||||
'replication_factor' : 1
|
||||
};
|
||||
|
||||
CREATE TABLE IF NOT EXISTS thingsboard.user (
|
||||
id timeuuid,
|
||||
tenant_id timeuuid,
|
||||
customer_id timeuuid,
|
||||
email text,
|
||||
search_text text,
|
||||
authority text,
|
||||
first_name text,
|
||||
last_name text,
|
||||
additional_info text,
|
||||
PRIMARY KEY (id, tenant_id, customer_id, authority)
|
||||
);
|
||||
|
||||
CREATE MATERIALIZED VIEW IF NOT EXISTS thingsboard.user_by_email AS
|
||||
SELECT *
|
||||
from thingsboard.user
|
||||
WHERE email IS NOT NULL AND tenant_id IS NOT NULL AND customer_id IS NOT NULL AND id IS NOT NULL AND authority IS NOT
|
||||
NULL
|
||||
PRIMARY KEY ( email, tenant_id, customer_id, id, authority );
|
||||
|
||||
CREATE MATERIALIZED VIEW IF NOT EXISTS thingsboard.user_by_tenant_and_search_text AS
|
||||
SELECT *
|
||||
from thingsboard.user
|
||||
WHERE tenant_id IS NOT NULL AND customer_id IS NOT NULL AND authority IS NOT NULL AND search_text IS NOT NULL AND id
|
||||
IS NOT NULL
|
||||
PRIMARY KEY ( tenant_id, customer_id, authority, search_text, id )
|
||||
WITH CLUSTERING ORDER BY ( customer_id DESC, authority DESC, search_text ASC, id DESC );
|
||||
|
||||
CREATE MATERIALIZED VIEW IF NOT EXISTS thingsboard.user_by_customer_and_search_text AS
|
||||
SELECT *
|
||||
from thingsboard.user
|
||||
WHERE tenant_id IS NOT NULL AND customer_id IS NOT NULL AND authority IS NOT NULL AND search_text IS NOT NULL AND id
|
||||
IS NOT NULL
|
||||
PRIMARY KEY ( customer_id, tenant_id, authority, search_text, id )
|
||||
WITH CLUSTERING ORDER BY ( tenant_id DESC, authority DESC, search_text ASC, id DESC );
|
||||
|
||||
CREATE TABLE IF NOT EXISTS thingsboard.user_credentials (
|
||||
id timeuuid PRIMARY KEY,
|
||||
user_id timeuuid,
|
||||
enabled boolean,
|
||||
password text,
|
||||
activate_token text,
|
||||
reset_token text
|
||||
);
|
||||
|
||||
CREATE MATERIALIZED VIEW IF NOT EXISTS thingsboard.user_credentials_by_user AS
|
||||
SELECT *
|
||||
from thingsboard.user_credentials
|
||||
WHERE user_id IS NOT NULL AND id IS NOT NULL
|
||||
PRIMARY KEY ( user_id, id );
|
||||
|
||||
CREATE MATERIALIZED VIEW IF NOT EXISTS thingsboard.user_credentials_by_activate_token AS
|
||||
SELECT *
|
||||
from thingsboard.user_credentials
|
||||
WHERE activate_token IS NOT NULL AND id IS NOT NULL
|
||||
PRIMARY KEY ( activate_token, id );
|
||||
|
||||
CREATE MATERIALIZED VIEW IF NOT EXISTS thingsboard.user_credentials_by_reset_token AS
|
||||
SELECT *
|
||||
from thingsboard.user_credentials
|
||||
WHERE reset_token IS NOT NULL AND id IS NOT NULL
|
||||
PRIMARY KEY ( reset_token, id );
|
||||
|
||||
CREATE TABLE IF NOT EXISTS thingsboard.admin_settings (
|
||||
id timeuuid PRIMARY KEY,
|
||||
key text,
|
||||
json_value text
|
||||
);
|
||||
|
||||
CREATE MATERIALIZED VIEW IF NOT EXISTS thingsboard.admin_settings_by_key AS
|
||||
SELECT *
|
||||
from thingsboard.admin_settings
|
||||
WHERE key IS NOT NULL AND id IS NOT NULL
|
||||
PRIMARY KEY ( key, id )
|
||||
WITH CLUSTERING ORDER BY ( id DESC );
|
||||
|
||||
CREATE TABLE IF NOT EXISTS thingsboard.tenant (
|
||||
id timeuuid,
|
||||
title text,
|
||||
search_text text,
|
||||
region text,
|
||||
country text,
|
||||
state text,
|
||||
city text,
|
||||
address text,
|
||||
address2 text,
|
||||
zip text,
|
||||
phone text,
|
||||
email text,
|
||||
additional_info text,
|
||||
PRIMARY KEY (id, region)
|
||||
);
|
||||
|
||||
CREATE MATERIALIZED VIEW IF NOT EXISTS thingsboard.tenant_by_region_and_search_text AS
|
||||
SELECT *
|
||||
from thingsboard.tenant
|
||||
WHERE region IS NOT NULL AND search_text IS NOT NULL AND id IS NOT NULL
|
||||
PRIMARY KEY ( region, search_text, id )
|
||||
WITH CLUSTERING ORDER BY ( search_text ASC, id DESC );
|
||||
|
||||
CREATE TABLE IF NOT EXISTS thingsboard.customer (
|
||||
id timeuuid,
|
||||
tenant_id timeuuid,
|
||||
title text,
|
||||
search_text text,
|
||||
country text,
|
||||
state text,
|
||||
city text,
|
||||
address text,
|
||||
address2 text,
|
||||
zip text,
|
||||
phone text,
|
||||
email text,
|
||||
additional_info text,
|
||||
PRIMARY KEY (id, tenant_id)
|
||||
);
|
||||
|
||||
CREATE MATERIALIZED VIEW IF NOT EXISTS thingsboard.customer_by_tenant_and_title AS
|
||||
SELECT *
|
||||
from thingsboard.customer
|
||||
WHERE tenant_id IS NOT NULL AND title IS NOT NULL AND id IS NOT NULL
|
||||
PRIMARY KEY ( tenant_id, title, id )
|
||||
WITH CLUSTERING ORDER BY ( title ASC, id DESC );
|
||||
|
||||
CREATE MATERIALIZED VIEW IF NOT EXISTS thingsboard.customer_by_tenant_and_search_text AS
|
||||
SELECT *
|
||||
from thingsboard.customer
|
||||
WHERE tenant_id IS NOT NULL AND search_text IS NOT NULL AND id IS NOT NULL
|
||||
PRIMARY KEY ( tenant_id, search_text, id )
|
||||
WITH CLUSTERING ORDER BY ( search_text ASC, id DESC );
|
||||
|
||||
CREATE TABLE IF NOT EXISTS thingsboard.device (
|
||||
id timeuuid,
|
||||
tenant_id timeuuid,
|
||||
customer_id timeuuid,
|
||||
name text,
|
||||
type text,
|
||||
search_text text,
|
||||
additional_info text,
|
||||
PRIMARY KEY (id, tenant_id, customer_id, type)
|
||||
);
|
||||
|
||||
CREATE MATERIALIZED VIEW IF NOT EXISTS thingsboard.device_by_tenant_and_name AS
|
||||
SELECT *
|
||||
from thingsboard.device
|
||||
WHERE tenant_id IS NOT NULL AND customer_id IS NOT NULL AND type IS NOT NULL AND name IS NOT NULL AND id IS NOT NULL
|
||||
PRIMARY KEY ( tenant_id, name, id, customer_id, type)
|
||||
WITH CLUSTERING ORDER BY ( name ASC, id DESC, customer_id DESC);
|
||||
|
||||
CREATE MATERIALIZED VIEW IF NOT EXISTS thingsboard.device_by_tenant_and_search_text AS
|
||||
SELECT *
|
||||
from thingsboard.device
|
||||
WHERE tenant_id IS NOT NULL AND customer_id IS NOT NULL AND type IS NOT NULL AND search_text IS NOT NULL AND id IS NOT NULL
|
||||
PRIMARY KEY ( tenant_id, search_text, id, customer_id, type)
|
||||
WITH CLUSTERING ORDER BY ( search_text ASC, id DESC, customer_id DESC);
|
||||
|
||||
CREATE MATERIALIZED VIEW IF NOT EXISTS thingsboard.device_by_tenant_by_type_and_search_text AS
|
||||
SELECT *
|
||||
from thingsboard.device
|
||||
WHERE tenant_id IS NOT NULL AND customer_id IS NOT NULL AND type IS NOT NULL AND search_text IS NOT NULL AND id IS NOT NULL
|
||||
PRIMARY KEY ( tenant_id, type, search_text, id, customer_id)
|
||||
WITH CLUSTERING ORDER BY ( type ASC, search_text ASC, id DESC, customer_id DESC);
|
||||
|
||||
CREATE MATERIALIZED VIEW IF NOT EXISTS thingsboard.device_by_customer_and_search_text AS
|
||||
SELECT *
|
||||
from thingsboard.device
|
||||
WHERE tenant_id IS NOT NULL AND customer_id IS NOT NULL AND type IS NOT NULL AND search_text IS NOT NULL AND id IS NOT NULL
|
||||
PRIMARY KEY ( customer_id, tenant_id, search_text, id, type )
|
||||
WITH CLUSTERING ORDER BY ( tenant_id DESC, search_text ASC, id DESC );
|
||||
|
||||
CREATE MATERIALIZED VIEW IF NOT EXISTS thingsboard.device_by_customer_by_type_and_search_text AS
|
||||
SELECT *
|
||||
from thingsboard.device
|
||||
WHERE tenant_id IS NOT NULL AND customer_id IS NOT NULL AND type IS NOT NULL AND search_text IS NOT NULL AND id IS NOT NULL
|
||||
PRIMARY KEY ( customer_id, tenant_id, type, search_text, id )
|
||||
WITH CLUSTERING ORDER BY ( tenant_id DESC, type ASC, search_text ASC, id DESC );
|
||||
|
||||
CREATE TABLE IF NOT EXISTS thingsboard.device_credentials (
|
||||
id timeuuid PRIMARY KEY,
|
||||
device_id timeuuid,
|
||||
credentials_type text,
|
||||
credentials_id text,
|
||||
credentials_value text
|
||||
);
|
||||
|
||||
CREATE MATERIALIZED VIEW IF NOT EXISTS thingsboard.device_credentials_by_device AS
|
||||
SELECT *
|
||||
from thingsboard.device_credentials
|
||||
WHERE device_id IS NOT NULL AND id IS NOT NULL
|
||||
PRIMARY KEY ( device_id, id );
|
||||
|
||||
CREATE MATERIALIZED VIEW IF NOT EXISTS thingsboard.device_credentials_by_credentials_id AS
|
||||
SELECT *
|
||||
from thingsboard.device_credentials
|
||||
WHERE credentials_id IS NOT NULL AND id IS NOT NULL
|
||||
PRIMARY KEY ( credentials_id, id );
|
||||
|
||||
CREATE TABLE IF NOT EXISTS thingsboard.asset (
|
||||
id timeuuid,
|
||||
tenant_id timeuuid,
|
||||
customer_id timeuuid,
|
||||
name text,
|
||||
type text,
|
||||
search_text text,
|
||||
additional_info text,
|
||||
PRIMARY KEY (id, tenant_id, customer_id, type)
|
||||
);
|
||||
|
||||
CREATE MATERIALIZED VIEW IF NOT EXISTS thingsboard.asset_by_tenant_and_name AS
|
||||
SELECT *
|
||||
from thingsboard.asset
|
||||
WHERE tenant_id IS NOT NULL AND customer_id IS NOT NULL AND type IS NOT NULL AND name IS NOT NULL AND id IS NOT NULL
|
||||
PRIMARY KEY ( tenant_id, name, id, customer_id, type)
|
||||
WITH CLUSTERING ORDER BY ( name ASC, id DESC, customer_id DESC);
|
||||
|
||||
CREATE MATERIALIZED VIEW IF NOT EXISTS thingsboard.asset_by_tenant_and_search_text AS
|
||||
SELECT *
|
||||
from thingsboard.asset
|
||||
WHERE tenant_id IS NOT NULL AND customer_id IS NOT NULL AND type IS NOT NULL AND search_text IS NOT NULL AND id IS NOT NULL
|
||||
PRIMARY KEY ( tenant_id, search_text, id, customer_id, type)
|
||||
WITH CLUSTERING ORDER BY ( search_text ASC, id DESC, customer_id DESC);
|
||||
|
||||
CREATE MATERIALIZED VIEW IF NOT EXISTS thingsboard.asset_by_tenant_by_type_and_search_text AS
|
||||
SELECT *
|
||||
from thingsboard.asset
|
||||
WHERE tenant_id IS NOT NULL AND customer_id IS NOT NULL AND type IS NOT NULL AND search_text IS NOT NULL AND id IS NOT NULL
|
||||
PRIMARY KEY ( tenant_id, type, search_text, id, customer_id)
|
||||
WITH CLUSTERING ORDER BY ( type ASC, search_text ASC, id DESC, customer_id DESC);
|
||||
|
||||
CREATE MATERIALIZED VIEW IF NOT EXISTS thingsboard.asset_by_customer_and_search_text AS
|
||||
SELECT *
|
||||
from thingsboard.asset
|
||||
WHERE tenant_id IS NOT NULL AND customer_id IS NOT NULL AND type IS NOT NULL AND search_text IS NOT NULL AND id IS NOT NULL
|
||||
PRIMARY KEY ( customer_id, tenant_id, search_text, id, type )
|
||||
WITH CLUSTERING ORDER BY ( tenant_id DESC, search_text ASC, id DESC );
|
||||
|
||||
CREATE MATERIALIZED VIEW IF NOT EXISTS thingsboard.asset_by_customer_by_type_and_search_text AS
|
||||
SELECT *
|
||||
from thingsboard.asset
|
||||
WHERE tenant_id IS NOT NULL AND customer_id IS NOT NULL AND type IS NOT NULL AND search_text IS NOT NULL AND id IS NOT NULL
|
||||
PRIMARY KEY ( customer_id, tenant_id, type, search_text, id )
|
||||
WITH CLUSTERING ORDER BY ( tenant_id DESC, type ASC, search_text ASC, id DESC );
|
||||
|
||||
CREATE TABLE IF NOT EXISTS thingsboard.entity_subtype (
|
||||
tenant_id timeuuid,
|
||||
entity_type text, // (DEVICE, ASSET)
|
||||
type text,
|
||||
PRIMARY KEY (tenant_id, entity_type, type)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS thingsboard.alarm (
|
||||
id timeuuid,
|
||||
tenant_id timeuuid,
|
||||
type text,
|
||||
originator_id timeuuid,
|
||||
originator_type text,
|
||||
severity text,
|
||||
status text,
|
||||
start_ts bigint,
|
||||
end_ts bigint,
|
||||
ack_ts bigint,
|
||||
clear_ts bigint,
|
||||
details text,
|
||||
propagate boolean,
|
||||
PRIMARY KEY ((tenant_id, originator_id, originator_type), type, id)
|
||||
) WITH CLUSTERING ORDER BY ( type ASC, id DESC);
|
||||
|
||||
CREATE MATERIALIZED VIEW IF NOT EXISTS thingsboard.alarm_by_id AS
|
||||
SELECT *
|
||||
from thingsboard.alarm
|
||||
WHERE tenant_id IS NOT NULL AND originator_id IS NOT NULL AND originator_type IS NOT NULL AND type IS NOT NULL
|
||||
AND type IS NOT NULL AND id IS NOT NULL
|
||||
PRIMARY KEY (id, tenant_id, originator_id, originator_type, type)
|
||||
WITH CLUSTERING ORDER BY ( tenant_id ASC, originator_id ASC, originator_type ASC, type ASC);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS thingsboard.relation (
|
||||
from_id timeuuid,
|
||||
from_type text,
|
||||
to_id timeuuid,
|
||||
to_type text,
|
||||
relation_type_group text,
|
||||
relation_type text,
|
||||
additional_info text,
|
||||
PRIMARY KEY ((from_id, from_type), relation_type_group, relation_type, to_id, to_type)
|
||||
) WITH CLUSTERING ORDER BY ( relation_type_group ASC, relation_type ASC, to_id ASC, to_type ASC);
|
||||
|
||||
CREATE MATERIALIZED VIEW IF NOT EXISTS thingsboard.relation_by_type_and_child_type AS
|
||||
SELECT *
|
||||
from thingsboard.relation
|
||||
WHERE from_id IS NOT NULL AND from_type IS NOT NULL AND relation_type_group IS NOT NULL AND relation_type IS NOT NULL AND to_id IS NOT NULL AND to_type IS NOT NULL
|
||||
PRIMARY KEY ((from_id, from_type), relation_type_group, relation_type, to_type, to_id)
|
||||
WITH CLUSTERING ORDER BY ( relation_type_group ASC, relation_type ASC, to_type ASC, to_id DESC);
|
||||
|
||||
CREATE MATERIALIZED VIEW IF NOT EXISTS thingsboard.reverse_relation AS
|
||||
SELECT *
|
||||
from thingsboard.relation
|
||||
WHERE from_id IS NOT NULL AND from_type IS NOT NULL AND relation_type_group IS NOT NULL AND relation_type IS NOT NULL AND to_id IS NOT NULL AND to_type IS NOT NULL
|
||||
PRIMARY KEY ((to_id, to_type), relation_type_group, relation_type, from_id, from_type)
|
||||
WITH CLUSTERING ORDER BY ( relation_type_group ASC, relation_type ASC, from_id ASC, from_type ASC);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS thingsboard.widgets_bundle (
|
||||
id timeuuid,
|
||||
tenant_id timeuuid,
|
||||
alias text,
|
||||
title text,
|
||||
search_text text,
|
||||
image blob,
|
||||
PRIMARY KEY (id, tenant_id)
|
||||
);
|
||||
|
||||
CREATE MATERIALIZED VIEW IF NOT EXISTS thingsboard.widgets_bundle_by_tenant_and_search_text AS
|
||||
SELECT *
|
||||
from thingsboard.widgets_bundle
|
||||
WHERE tenant_id IS NOT NULL AND search_text IS NOT NULL AND id IS NOT NULL
|
||||
PRIMARY KEY ( tenant_id, search_text, id )
|
||||
WITH CLUSTERING ORDER BY ( search_text ASC, id DESC );
|
||||
|
||||
CREATE MATERIALIZED VIEW IF NOT EXISTS thingsboard.widgets_bundle_by_tenant_and_alias AS
|
||||
SELECT *
|
||||
from thingsboard.widgets_bundle
|
||||
WHERE tenant_id IS NOT NULL AND alias IS NOT NULL AND id IS NOT NULL
|
||||
PRIMARY KEY ( tenant_id, alias, id )
|
||||
WITH CLUSTERING ORDER BY ( alias ASC, id DESC );
|
||||
|
||||
CREATE TABLE IF NOT EXISTS thingsboard.widget_type (
|
||||
id timeuuid,
|
||||
tenant_id timeuuid,
|
||||
bundle_alias text,
|
||||
alias text,
|
||||
name text,
|
||||
descriptor text,
|
||||
PRIMARY KEY (id, tenant_id, bundle_alias)
|
||||
);
|
||||
|
||||
CREATE MATERIALIZED VIEW IF NOT EXISTS thingsboard.widget_type_by_tenant_and_aliases AS
|
||||
SELECT *
|
||||
from thingsboard.widget_type
|
||||
WHERE tenant_id IS NOT NULL AND bundle_alias IS NOT NULL AND alias IS NOT NULL AND id IS NOT NULL
|
||||
PRIMARY KEY ( tenant_id, bundle_alias, alias, id )
|
||||
WITH CLUSTERING ORDER BY ( bundle_alias ASC, alias ASC, id DESC );
|
||||
|
||||
CREATE TABLE IF NOT EXISTS thingsboard.dashboard (
|
||||
id timeuuid,
|
||||
tenant_id timeuuid,
|
||||
title text,
|
||||
search_text text,
|
||||
assigned_customers text,
|
||||
configuration text,
|
||||
PRIMARY KEY (id, tenant_id)
|
||||
);
|
||||
|
||||
CREATE MATERIALIZED VIEW IF NOT EXISTS thingsboard.dashboard_by_tenant_and_search_text AS
|
||||
SELECT *
|
||||
from thingsboard.dashboard
|
||||
WHERE tenant_id IS NOT NULL AND search_text IS NOT NULL AND id IS NOT NULL
|
||||
PRIMARY KEY ( tenant_id, search_text, id )
|
||||
WITH CLUSTERING ORDER BY ( search_text ASC, id DESC );
|
||||
|
||||
CREATE TABLE IF NOT EXISTS thingsboard.ts_kv_cf (
|
||||
entity_type text, // (DEVICE, CUSTOMER, TENANT)
|
||||
entity_id timeuuid,
|
||||
key text,
|
||||
partition bigint,
|
||||
ts bigint,
|
||||
bool_v boolean,
|
||||
str_v text,
|
||||
long_v bigint,
|
||||
dbl_v double,
|
||||
PRIMARY KEY (( entity_type, entity_id, key, partition ), ts)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS thingsboard.ts_kv_partitions_cf (
|
||||
entity_type text, // (DEVICE, CUSTOMER, TENANT)
|
||||
entity_id timeuuid,
|
||||
key text,
|
||||
partition bigint,
|
||||
PRIMARY KEY (( entity_type, entity_id, key ), partition)
|
||||
) WITH CLUSTERING ORDER BY ( partition ASC )
|
||||
AND compaction = { 'class' : 'LeveledCompactionStrategy' };
|
||||
|
||||
CREATE TABLE IF NOT EXISTS thingsboard.ts_kv_latest_cf (
|
||||
entity_type text, // (DEVICE, CUSTOMER, TENANT)
|
||||
entity_id timeuuid,
|
||||
key text,
|
||||
ts bigint,
|
||||
bool_v boolean,
|
||||
str_v text,
|
||||
long_v bigint,
|
||||
dbl_v double,
|
||||
PRIMARY KEY (( entity_type, entity_id ), key)
|
||||
) WITH compaction = { 'class' : 'LeveledCompactionStrategy' };
|
||||
|
||||
|
||||
CREATE TABLE IF NOT EXISTS thingsboard.attributes_kv_cf (
|
||||
entity_type text, // (DEVICE, CUSTOMER, TENANT)
|
||||
entity_id timeuuid,
|
||||
attribute_type text, // (CLIENT_SIDE, SHARED, SERVER_SIDE)
|
||||
attribute_key text,
|
||||
bool_v boolean,
|
||||
str_v text,
|
||||
long_v bigint,
|
||||
dbl_v double,
|
||||
last_update_ts bigint,
|
||||
PRIMARY KEY ((entity_type, entity_id, attribute_type), attribute_key)
|
||||
) WITH compaction = { 'class' : 'LeveledCompactionStrategy' };
|
||||
|
||||
CREATE TABLE IF NOT EXISTS thingsboard.component_descriptor (
|
||||
id timeuuid,
|
||||
type text,
|
||||
scope text,
|
||||
name text,
|
||||
search_text text,
|
||||
clazz text,
|
||||
configuration_descriptor text,
|
||||
actions text,
|
||||
PRIMARY KEY (clazz, id, type, scope)
|
||||
);
|
||||
|
||||
CREATE MATERIALIZED VIEW IF NOT EXISTS thingsboard.component_desc_by_type_search_text AS
|
||||
SELECT *
|
||||
from thingsboard.component_descriptor
|
||||
WHERE type IS NOT NULL AND scope IS NOT NULL AND search_text IS NOT NULL AND id IS NOT NULL AND clazz IS NOT NULL
|
||||
PRIMARY KEY ( type, search_text, id, clazz, scope)
|
||||
WITH CLUSTERING ORDER BY ( search_text DESC);
|
||||
|
||||
CREATE MATERIALIZED VIEW IF NOT EXISTS thingsboard.component_desc_by_scope_type_search_text AS
|
||||
SELECT *
|
||||
from thingsboard.component_descriptor
|
||||
WHERE type IS NOT NULL AND scope IS NOT NULL AND search_text IS NOT NULL AND id IS NOT NULL AND clazz IS NOT NULL
|
||||
PRIMARY KEY ( (scope, type), search_text, id, clazz)
|
||||
WITH CLUSTERING ORDER BY ( search_text DESC);
|
||||
|
||||
CREATE MATERIALIZED VIEW IF NOT EXISTS thingsboard.component_desc_by_id AS
|
||||
SELECT *
|
||||
from thingsboard.component_descriptor
|
||||
WHERE type IS NOT NULL AND scope IS NOT NULL AND id IS NOT NULL AND clazz IS NOT NULL
|
||||
PRIMARY KEY ( id, clazz, scope, type )
|
||||
WITH CLUSTERING ORDER BY ( clazz ASC, scope ASC, type DESC);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS thingsboard.event (
|
||||
tenant_id timeuuid, // tenant or system
|
||||
id timeuuid,
|
||||
event_type text,
|
||||
event_uid text,
|
||||
entity_type text,
|
||||
entity_id timeuuid,
|
||||
body text,
|
||||
PRIMARY KEY ((tenant_id, entity_type, entity_id), event_type, event_uid)
|
||||
);
|
||||
|
||||
CREATE MATERIALIZED VIEW IF NOT EXISTS thingsboard.event_by_type_and_id AS
|
||||
SELECT *
|
||||
FROM thingsboard.event
|
||||
WHERE tenant_id IS NOT NULL AND entity_type IS NOT NULL AND entity_id IS NOT NULL AND id IS NOT NULL
|
||||
AND event_type IS NOT NULL AND event_uid IS NOT NULL
|
||||
PRIMARY KEY ((tenant_id, entity_type, entity_id), event_type, id, event_uid)
|
||||
WITH CLUSTERING ORDER BY (event_type ASC, id ASC, event_uid ASC);
|
||||
|
||||
|
||||
CREATE MATERIALIZED VIEW IF NOT EXISTS thingsboard.event_by_id AS
|
||||
SELECT *
|
||||
FROM thingsboard.event
|
||||
WHERE tenant_id IS NOT NULL AND entity_type IS NOT NULL AND entity_id IS NOT NULL AND id IS NOT NULL
|
||||
AND event_type IS NOT NULL AND event_uid IS NOT NULL
|
||||
PRIMARY KEY ((tenant_id, entity_type, entity_id), id, event_type, event_uid)
|
||||
WITH CLUSTERING ORDER BY (id ASC, event_type ASC, event_uid ASC);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS thingsboard.audit_log_by_entity_id (
|
||||
tenant_id timeuuid,
|
||||
id timeuuid,
|
||||
customer_id timeuuid,
|
||||
entity_id timeuuid,
|
||||
entity_type text,
|
||||
entity_name text,
|
||||
user_id timeuuid,
|
||||
user_name text,
|
||||
action_type text,
|
||||
action_data text,
|
||||
action_status text,
|
||||
action_failure_details text,
|
||||
PRIMARY KEY ((tenant_id, entity_id, entity_type), id)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS thingsboard.audit_log_by_customer_id (
|
||||
tenant_id timeuuid,
|
||||
id timeuuid,
|
||||
customer_id timeuuid,
|
||||
entity_id timeuuid,
|
||||
entity_type text,
|
||||
entity_name text,
|
||||
user_id timeuuid,
|
||||
user_name text,
|
||||
action_type text,
|
||||
action_data text,
|
||||
action_status text,
|
||||
action_failure_details text,
|
||||
PRIMARY KEY ((tenant_id, customer_id), id)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS thingsboard.audit_log_by_user_id (
|
||||
tenant_id timeuuid,
|
||||
id timeuuid,
|
||||
customer_id timeuuid,
|
||||
entity_id timeuuid,
|
||||
entity_type text,
|
||||
entity_name text,
|
||||
user_id timeuuid,
|
||||
user_name text,
|
||||
action_type text,
|
||||
action_data text,
|
||||
action_status text,
|
||||
action_failure_details text,
|
||||
PRIMARY KEY ((tenant_id, user_id), id)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS thingsboard.audit_log_by_tenant_id (
|
||||
tenant_id timeuuid,
|
||||
id timeuuid,
|
||||
partition bigint,
|
||||
customer_id timeuuid,
|
||||
entity_id timeuuid,
|
||||
entity_type text,
|
||||
entity_name text,
|
||||
user_id timeuuid,
|
||||
user_name text,
|
||||
action_type text,
|
||||
action_data text,
|
||||
action_status text,
|
||||
action_failure_details text,
|
||||
PRIMARY KEY ((tenant_id, partition), id)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS thingsboard.audit_log_by_tenant_id_partitions (
|
||||
tenant_id timeuuid,
|
||||
partition bigint,
|
||||
PRIMARY KEY (( tenant_id ), partition)
|
||||
) WITH CLUSTERING ORDER BY ( partition ASC )
|
||||
AND compaction = { 'class' : 'LeveledCompactionStrategy' };
|
||||
|
||||
CREATE TABLE IF NOT EXISTS thingsboard.msg_queue (
|
||||
node_id timeuuid,
|
||||
cluster_partition bigint,
|
||||
ts_partition bigint,
|
||||
ts bigint,
|
||||
msg blob,
|
||||
PRIMARY KEY ((node_id, cluster_partition, ts_partition), ts))
|
||||
WITH CLUSTERING ORDER BY (ts DESC)
|
||||
AND compaction = {
|
||||
'class': 'org.apache.cassandra.db.compaction.DateTieredCompactionStrategy',
|
||||
'min_threshold': '5',
|
||||
'base_time_seconds': '43200',
|
||||
'max_window_size_seconds': '43200',
|
||||
'tombstone_threshold': '0.9',
|
||||
'unchecked_tombstone_compaction': 'true'
|
||||
};
|
||||
|
||||
CREATE TABLE IF NOT EXISTS thingsboard.msg_ack_queue (
|
||||
node_id timeuuid,
|
||||
cluster_partition bigint,
|
||||
ts_partition bigint,
|
||||
msg_id timeuuid,
|
||||
PRIMARY KEY ((node_id, cluster_partition, ts_partition), msg_id))
|
||||
WITH CLUSTERING ORDER BY (msg_id DESC)
|
||||
AND compaction = {
|
||||
'class': 'org.apache.cassandra.db.compaction.DateTieredCompactionStrategy',
|
||||
'min_threshold': '5',
|
||||
'base_time_seconds': '43200',
|
||||
'max_window_size_seconds': '43200',
|
||||
'tombstone_threshold': '0.9',
|
||||
'unchecked_tombstone_compaction': 'true'
|
||||
};
|
||||
|
||||
CREATE TABLE IF NOT EXISTS thingsboard.processed_msg_partitions (
|
||||
node_id timeuuid,
|
||||
cluster_partition bigint,
|
||||
ts_partition bigint,
|
||||
PRIMARY KEY ((node_id, cluster_partition), ts_partition))
|
||||
WITH CLUSTERING ORDER BY (ts_partition DESC)
|
||||
AND compaction = {
|
||||
'class': 'org.apache.cassandra.db.compaction.DateTieredCompactionStrategy',
|
||||
'min_threshold': '5',
|
||||
'base_time_seconds': '43200',
|
||||
'max_window_size_seconds': '43200',
|
||||
'tombstone_threshold': '0.9',
|
||||
'unchecked_tombstone_compaction': 'true'
|
||||
};
|
||||
|
||||
CREATE TABLE IF NOT EXISTS thingsboard.rule_chain (
|
||||
id uuid,
|
||||
tenant_id uuid,
|
||||
name text,
|
||||
search_text text,
|
||||
first_rule_node_id uuid,
|
||||
root boolean,
|
||||
debug_mode boolean,
|
||||
configuration text,
|
||||
additional_info text,
|
||||
PRIMARY KEY (id, tenant_id)
|
||||
);
|
||||
|
||||
CREATE MATERIALIZED VIEW IF NOT EXISTS thingsboard.rule_chain_by_tenant_and_search_text AS
|
||||
SELECT *
|
||||
from thingsboard.rule_chain
|
||||
WHERE tenant_id IS NOT NULL AND search_text IS NOT NULL AND id IS NOT NULL
|
||||
PRIMARY KEY ( tenant_id, search_text, id )
|
||||
WITH CLUSTERING ORDER BY ( search_text ASC, id DESC );
|
||||
|
||||
CREATE TABLE IF NOT EXISTS thingsboard.rule_node (
|
||||
id uuid,
|
||||
rule_chain_id uuid,
|
||||
type text,
|
||||
name text,
|
||||
debug_mode boolean,
|
||||
search_text text,
|
||||
configuration text,
|
||||
additional_info text,
|
||||
PRIMARY KEY (id)
|
||||
);
|
||||
@ -1,253 +0,0 @@
|
||||
--
|
||||
-- Copyright © 2016-2018 The Thingsboard Authors
|
||||
--
|
||||
-- Licensed under the Apache License, Version 2.0 (the "License");
|
||||
-- you may not use this file except in compliance with the License.
|
||||
-- You may obtain a copy of the License at
|
||||
--
|
||||
-- http://www.apache.org/licenses/LICENSE-2.0
|
||||
--
|
||||
-- Unless required by applicable law or agreed to in writing, software
|
||||
-- distributed under the License is distributed on an "AS IS" BASIS,
|
||||
-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
-- See the License for the specific language governing permissions and
|
||||
-- limitations under the License.
|
||||
--
|
||||
|
||||
|
||||
CREATE TABLE IF NOT EXISTS admin_settings (
|
||||
id varchar(31) NOT NULL CONSTRAINT admin_settings_pkey PRIMARY KEY,
|
||||
json_value varchar,
|
||||
key varchar(255)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS alarm (
|
||||
id varchar(31) NOT NULL CONSTRAINT alarm_pkey PRIMARY KEY,
|
||||
ack_ts bigint,
|
||||
clear_ts bigint,
|
||||
additional_info varchar,
|
||||
end_ts bigint,
|
||||
originator_id varchar(31),
|
||||
originator_type integer,
|
||||
propagate boolean,
|
||||
severity varchar(255),
|
||||
start_ts bigint,
|
||||
status varchar(255),
|
||||
tenant_id varchar(31),
|
||||
type varchar(255)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS asset (
|
||||
id varchar(31) NOT NULL CONSTRAINT asset_pkey PRIMARY KEY,
|
||||
additional_info varchar,
|
||||
customer_id varchar(31),
|
||||
name varchar(255),
|
||||
search_text varchar(255),
|
||||
tenant_id varchar(31),
|
||||
type varchar(255)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS audit_log (
|
||||
id varchar(31) NOT NULL CONSTRAINT audit_log_pkey PRIMARY KEY,
|
||||
tenant_id varchar(31),
|
||||
customer_id varchar(31),
|
||||
entity_id varchar(31),
|
||||
entity_type varchar(255),
|
||||
entity_name varchar(255),
|
||||
user_id varchar(31),
|
||||
user_name varchar(255),
|
||||
action_type varchar(255),
|
||||
action_data varchar(1000000),
|
||||
action_status varchar(255),
|
||||
action_failure_details varchar(1000000)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS attribute_kv (
|
||||
entity_type varchar(255),
|
||||
entity_id varchar(31),
|
||||
attribute_type varchar(255),
|
||||
attribute_key varchar(255),
|
||||
bool_v boolean,
|
||||
str_v varchar(10000000),
|
||||
long_v bigint,
|
||||
dbl_v double precision,
|
||||
last_update_ts bigint,
|
||||
CONSTRAINT attribute_kv_unq_key UNIQUE (entity_type, entity_id, attribute_type, attribute_key)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS component_descriptor (
|
||||
id varchar(31) NOT NULL CONSTRAINT component_descriptor_pkey PRIMARY KEY,
|
||||
actions varchar(255),
|
||||
clazz varchar,
|
||||
configuration_descriptor varchar,
|
||||
name varchar(255),
|
||||
scope varchar(255),
|
||||
search_text varchar(255),
|
||||
type varchar(255)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS customer (
|
||||
id varchar(31) NOT NULL CONSTRAINT customer_pkey PRIMARY KEY,
|
||||
additional_info varchar,
|
||||
address varchar,
|
||||
address2 varchar,
|
||||
city varchar(255),
|
||||
country varchar(255),
|
||||
email varchar(255),
|
||||
phone varchar(255),
|
||||
search_text varchar(255),
|
||||
state varchar(255),
|
||||
tenant_id varchar(31),
|
||||
title varchar(255),
|
||||
zip varchar(255)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS dashboard (
|
||||
id varchar(31) NOT NULL CONSTRAINT dashboard_pkey PRIMARY KEY,
|
||||
configuration varchar(10000000),
|
||||
assigned_customers varchar(1000000),
|
||||
search_text varchar(255),
|
||||
tenant_id varchar(31),
|
||||
title varchar(255)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS device (
|
||||
id varchar(31) NOT NULL CONSTRAINT device_pkey PRIMARY KEY,
|
||||
additional_info varchar,
|
||||
customer_id varchar(31),
|
||||
type varchar(255),
|
||||
name varchar(255),
|
||||
search_text varchar(255),
|
||||
tenant_id varchar(31)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS device_credentials (
|
||||
id varchar(31) NOT NULL CONSTRAINT device_credentials_pkey PRIMARY KEY,
|
||||
credentials_id varchar,
|
||||
credentials_type varchar(255),
|
||||
credentials_value varchar,
|
||||
device_id varchar(31)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS event (
|
||||
id varchar(31) NOT NULL CONSTRAINT event_pkey PRIMARY KEY,
|
||||
body varchar,
|
||||
entity_id varchar(31),
|
||||
entity_type varchar(255),
|
||||
event_type varchar(255),
|
||||
event_uid varchar(255),
|
||||
tenant_id varchar(31),
|
||||
CONSTRAINT event_unq_key UNIQUE (tenant_id, entity_type, entity_id, event_type, event_uid)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS relation (
|
||||
from_id varchar(31),
|
||||
from_type varchar(255),
|
||||
to_id varchar(31),
|
||||
to_type varchar(255),
|
||||
relation_type_group varchar(255),
|
||||
relation_type varchar(255),
|
||||
additional_info varchar,
|
||||
CONSTRAINT relation_unq_key UNIQUE (from_id, from_type, relation_type_group, relation_type, to_id, to_type)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS tb_user (
|
||||
id varchar(31) NOT NULL CONSTRAINT tb_user_pkey PRIMARY KEY,
|
||||
additional_info varchar,
|
||||
authority varchar(255),
|
||||
customer_id varchar(31),
|
||||
email varchar(255) UNIQUE,
|
||||
first_name varchar(255),
|
||||
last_name varchar(255),
|
||||
search_text varchar(255),
|
||||
tenant_id varchar(31)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS tenant (
|
||||
id varchar(31) NOT NULL CONSTRAINT tenant_pkey PRIMARY KEY,
|
||||
additional_info varchar,
|
||||
address varchar,
|
||||
address2 varchar,
|
||||
city varchar(255),
|
||||
country varchar(255),
|
||||
email varchar(255),
|
||||
phone varchar(255),
|
||||
region varchar(255),
|
||||
search_text varchar(255),
|
||||
state varchar(255),
|
||||
title varchar(255),
|
||||
zip varchar(255)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS ts_kv (
|
||||
entity_type varchar(255) NOT NULL,
|
||||
entity_id varchar(31) NOT NULL,
|
||||
key varchar(255) NOT NULL,
|
||||
ts bigint NOT NULL,
|
||||
bool_v boolean,
|
||||
str_v varchar(10000000),
|
||||
long_v bigint,
|
||||
dbl_v double precision,
|
||||
CONSTRAINT ts_kv_unq_key UNIQUE (entity_type, entity_id, key, ts)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS ts_kv_latest (
|
||||
entity_type varchar(255) NOT NULL,
|
||||
entity_id varchar(31) NOT NULL,
|
||||
key varchar(255) NOT NULL,
|
||||
ts bigint NOT NULL,
|
||||
bool_v boolean,
|
||||
str_v varchar(10000000),
|
||||
long_v bigint,
|
||||
dbl_v double precision,
|
||||
CONSTRAINT ts_kv_latest_unq_key UNIQUE (entity_type, entity_id, key)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS user_credentials (
|
||||
id varchar(31) NOT NULL CONSTRAINT user_credentials_pkey PRIMARY KEY,
|
||||
activate_token varchar(255) UNIQUE,
|
||||
enabled boolean,
|
||||
password varchar(255),
|
||||
reset_token varchar(255) UNIQUE,
|
||||
user_id varchar(31) UNIQUE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS widget_type (
|
||||
id varchar(31) NOT NULL CONSTRAINT widget_type_pkey PRIMARY KEY,
|
||||
alias varchar(255),
|
||||
bundle_alias varchar(255),
|
||||
descriptor varchar(1000000),
|
||||
name varchar(255),
|
||||
tenant_id varchar(31)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS widgets_bundle (
|
||||
id varchar(31) NOT NULL CONSTRAINT widgets_bundle_pkey PRIMARY KEY,
|
||||
alias varchar(255),
|
||||
search_text varchar(255),
|
||||
tenant_id varchar(31),
|
||||
title varchar(255)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS rule_chain (
|
||||
id varchar(31) NOT NULL CONSTRAINT rule_chain_pkey PRIMARY KEY,
|
||||
additional_info varchar,
|
||||
configuration varchar(10000000),
|
||||
name varchar(255),
|
||||
first_rule_node_id varchar(31),
|
||||
root boolean,
|
||||
debug_mode boolean,
|
||||
search_text varchar(255),
|
||||
tenant_id varchar(31)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS rule_node (
|
||||
id varchar(31) NOT NULL CONSTRAINT rule_node_pkey PRIMARY KEY,
|
||||
rule_chain_id varchar(31),
|
||||
additional_info varchar,
|
||||
configuration varchar(10000000),
|
||||
type varchar(255),
|
||||
name varchar(255),
|
||||
debug_mode boolean,
|
||||
search_text varchar(255)
|
||||
);
|
||||
@ -30,7 +30,7 @@ public class JpaDaoTestSuite {
|
||||
|
||||
@ClassRule
|
||||
public static CustomSqlUnit sqlUnit = new CustomSqlUnit(
|
||||
Arrays.asList("sql/schema.sql", "sql/system-data.sql"),
|
||||
Arrays.asList("sql/schema-ts.sql", "sql/schema-entities.sql", "sql/system-data.sql"),
|
||||
"sql/drop-all-tables.sql",
|
||||
"sql-test.properties"
|
||||
);
|
||||
|
||||
@ -34,7 +34,9 @@ public class NoSqlDaoServiceTestSuite {
|
||||
@ClassRule
|
||||
public static CustomCassandraCQLUnit cassandraUnit =
|
||||
new CustomCassandraCQLUnit(
|
||||
Arrays.asList(new ClassPathCQLDataSet("cassandra/schema.cql", false, false),
|
||||
Arrays.asList(
|
||||
new ClassPathCQLDataSet("cassandra/schema-ts.cql", false, false),
|
||||
new ClassPathCQLDataSet("cassandra/schema-entities.cql", false, false),
|
||||
new ClassPathCQLDataSet("cassandra/system-data.cql", false, false),
|
||||
new ClassPathCQLDataSet("cassandra/system-test.cql", false, false)),
|
||||
"cassandra-test.yaml", 30000L);
|
||||
|
||||
@ -30,7 +30,7 @@ public class SqlDaoServiceTestSuite {
|
||||
|
||||
@ClassRule
|
||||
public static CustomSqlUnit sqlUnit = new CustomSqlUnit(
|
||||
Arrays.asList("sql/schema.sql", "sql/system-data.sql", "sql/system-test.sql"),
|
||||
Arrays.asList("sql/schema-ts.sql", "sql/schema-entities.sql", "sql/system-data.sql", "sql/system-test.sql"),
|
||||
"sql/drop-all-tables.sql",
|
||||
"sql-test.properties"
|
||||
);
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
database.type=cassandra
|
||||
database.entities.type=cassandra
|
||||
database.ts.type=cassandra
|
||||
|
||||
cassandra.queue.partitioning=HOURS
|
||||
cassandra.queue.ack.ttl=3600
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
database.type=sql
|
||||
database.ts.type=sql
|
||||
database.entities.type=sql
|
||||
|
||||
sql.ts_inserts_executor_type=fixed
|
||||
sql.ts_inserts_fixed_thread_pool_size=10
|
||||
|
||||
@ -30,7 +30,9 @@ spec:
|
||||
value: "cassandra-headless"
|
||||
- name : CASSANDRA_PORT
|
||||
value: "9042"
|
||||
- name : DATABASE_TYPE
|
||||
- name : DATABASE_ENTITIES_TYPE
|
||||
value: "cassandra"
|
||||
- name : DATABASE_TS_TYPE
|
||||
value: "cassandra"
|
||||
- name : CASSANDRA_URL
|
||||
value: "cassandra-headless:9042"
|
||||
|
||||
@ -30,7 +30,9 @@ spec:
|
||||
value: "cassandra-headless"
|
||||
- name : CASSANDRA_PORT
|
||||
value: "9042"
|
||||
- name : DATABASE_TYPE
|
||||
- name : DATABASE_ENTITIES_TYPE
|
||||
value: "cassandra"
|
||||
- name : DATABASE_TS_TYPE
|
||||
value: "cassandra"
|
||||
- name : CASSANDRA_URL
|
||||
value: "cassandra-headless:9042"
|
||||
|
||||
@ -120,7 +120,12 @@ spec:
|
||||
configMapKeyRef:
|
||||
name: tb-config
|
||||
key: cassandra.url
|
||||
- name: DATABASE_TYPE
|
||||
- name: DATABASE_ENTITIES_TYPE
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: tb-config
|
||||
key: database.type
|
||||
- name: DATABASE_TS_TYPE
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: tb-config
|
||||
|
||||
@ -8,7 +8,8 @@ COAP_BIND_PORT=5683
|
||||
ZOOKEEPER_URL=zk:2181
|
||||
|
||||
# type of database to use: sql[DEFAULT] or cassandra
|
||||
DATABASE_TYPE=sql
|
||||
DATABASE_TS_TYPE=sql
|
||||
DATABASE_ENTITIES_TYPE=sql
|
||||
|
||||
# cassandra db config
|
||||
CASSANDRA_URL=cassandra:9042
|
||||
|
||||
@ -23,7 +23,7 @@ printenv | awk -F "=" '{print "export " $1 "='\''" $2 "'\''"}' >> /usr/share/thi
|
||||
|
||||
cat /usr/share/thingsboard/conf/thingsboard.conf
|
||||
|
||||
if [ "$DATABASE_TYPE" == "cassandra" ]; then
|
||||
if [ "$DATABASE_ENTITIES_TYPE" == "cassandra" ]; then
|
||||
until nmap $CASSANDRA_HOST -p $CASSANDRA_PORT | grep "$CASSANDRA_PORT/tcp open\|filtered"
|
||||
do
|
||||
echo "Wait for cassandra db to start..."
|
||||
@ -31,7 +31,7 @@ if [ "$DATABASE_TYPE" == "cassandra" ]; then
|
||||
done
|
||||
fi
|
||||
|
||||
if [ "$DATABASE_TYPE" == "sql" ]; then
|
||||
if [ "$DATABASE_ENTITIES_TYPE" == "sql" ]; then
|
||||
if [ "$SPRING_DRIVER_CLASS_NAME" == "org.postgresql.Driver" ]; then
|
||||
until nmap $POSTGRES_HOST -p $POSTGRES_PORT | grep "$POSTGRES_PORT/tcp open"
|
||||
do
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user