|
|
@ -18,6 +18,7 @@ package org.thingsboard.server.service.install; |
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
import org.springframework.beans.factory.annotation.Qualifier; |
|
|
import org.springframework.beans.factory.annotation.Qualifier; |
|
|
|
|
|
import org.springframework.beans.factory.annotation.Value; |
|
|
import org.thingsboard.server.dao.cassandra.CassandraInstallCluster; |
|
|
import org.thingsboard.server.dao.cassandra.CassandraInstallCluster; |
|
|
import org.thingsboard.server.service.install.cql.CQLStatementsParser; |
|
|
import org.thingsboard.server.service.install.cql.CQLStatementsParser; |
|
|
|
|
|
|
|
|
@ -29,6 +30,7 @@ import java.util.List; |
|
|
public abstract class CassandraAbstractDatabaseSchemaService implements DatabaseSchemaService { |
|
|
public abstract class CassandraAbstractDatabaseSchemaService implements DatabaseSchemaService { |
|
|
|
|
|
|
|
|
private static final String CASSANDRA_DIR = "cassandra"; |
|
|
private static final String CASSANDRA_DIR = "cassandra"; |
|
|
|
|
|
private static final String CASSANDRA_STANDARD_KEYSPACE = "thingsboard"; |
|
|
|
|
|
|
|
|
@Autowired |
|
|
@Autowired |
|
|
@Qualifier("CassandraInstallCluster") |
|
|
@Qualifier("CassandraInstallCluster") |
|
|
@ -37,6 +39,9 @@ public abstract class CassandraAbstractDatabaseSchemaService implements Database |
|
|
@Autowired |
|
|
@Autowired |
|
|
private InstallScripts installScripts; |
|
|
private InstallScripts installScripts; |
|
|
|
|
|
|
|
|
|
|
|
@Value("${cassandra.keyspace_name}") |
|
|
|
|
|
private String keyspaceName; |
|
|
|
|
|
|
|
|
private final String schemaCql; |
|
|
private final String schemaCql; |
|
|
|
|
|
|
|
|
protected CassandraAbstractDatabaseSchemaService(String schemaCql) { |
|
|
protected CassandraAbstractDatabaseSchemaService(String schemaCql) { |
|
|
@ -61,6 +66,10 @@ public abstract class CassandraAbstractDatabaseSchemaService implements Database |
|
|
|
|
|
|
|
|
private void loadCql(Path cql) throws Exception { |
|
|
private void loadCql(Path cql) throws Exception { |
|
|
List<String> statements = new CQLStatementsParser(cql).getStatements(); |
|
|
List<String> statements = new CQLStatementsParser(cql).getStatements(); |
|
|
statements.forEach(statement -> cluster.getSession().execute(statement)); |
|
|
statements.forEach(statement -> cluster.getSession().execute(getCassandraKeyspaceName(statement))); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private String getCassandraKeyspaceName(String statement) { |
|
|
|
|
|
return statement.replaceFirst(CASSANDRA_STANDARD_KEYSPACE, keyspaceName); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|