Browse Source

install hybrid db schema (simplified)

pull/1039/head
hagaic 8 years ago
parent
commit
90e0d8965b
  1. 16
      application/src/main/java/org/thingsboard/server/install/ThingsboardInstallService.java
  2. 4
      application/src/main/java/org/thingsboard/server/service/install/CassandraAbstractDatabaseSchemaService.java
  3. 43
      application/src/main/java/org/thingsboard/server/service/install/CassandraDatabaseSchemaService.java
  4. 5
      application/src/main/java/org/thingsboard/server/service/install/CassandraEntityDatabaseSchemaService.java
  5. 5
      application/src/main/java/org/thingsboard/server/service/install/CassandraTsDatabaseSchemaService.java
  6. 4
      application/src/main/java/org/thingsboard/server/service/install/EntityDatabaseSchemaService.java
  7. 44
      application/src/main/java/org/thingsboard/server/service/install/HybridDatabaseSchemaService.java
  8. 4
      application/src/main/java/org/thingsboard/server/service/install/SqlAbstractDatabaseSchemaService.java
  9. 44
      application/src/main/java/org/thingsboard/server/service/install/SqlDatabaseSchemaService.java
  10. 5
      application/src/main/java/org/thingsboard/server/service/install/SqlEntityDatabaseSchemaService.java
  11. 5
      application/src/main/java/org/thingsboard/server/service/install/SqlTsDatabaseSchemaService.java
  12. 4
      application/src/main/java/org/thingsboard/server/service/install/TsDatabaseSchemaService.java

16
application/src/main/java/org/thingsboard/server/install/ThingsboardInstallService.java

@ -24,9 +24,10 @@ import org.springframework.context.annotation.Profile;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.thingsboard.server.service.component.ComponentDiscoveryService; import org.thingsboard.server.service.component.ComponentDiscoveryService;
import org.thingsboard.server.service.install.DataUpdateService; import org.thingsboard.server.service.install.DataUpdateService;
import org.thingsboard.server.service.install.DatabaseSchemaService;
import org.thingsboard.server.service.install.DatabaseUpgradeService; import org.thingsboard.server.service.install.DatabaseUpgradeService;
import org.thingsboard.server.service.install.EntityDatabaseSchemaService;
import org.thingsboard.server.service.install.SystemDataLoaderService; import org.thingsboard.server.service.install.SystemDataLoaderService;
import org.thingsboard.server.service.install.TsDatabaseSchemaService;
@Service @Service
@Profile("install") @Profile("install")
@ -43,7 +44,10 @@ public class ThingsboardInstallService {
private Boolean loadDemo; private Boolean loadDemo;
@Autowired @Autowired
private DatabaseSchemaService databaseSchemaService; private EntityDatabaseSchemaService entityDatabaseSchemaService;
@Autowired
private TsDatabaseSchemaService tsDatabaseSchemaService;
@Autowired @Autowired
private DatabaseUpgradeService databaseUpgradeService; private DatabaseUpgradeService databaseUpgradeService;
@ -114,9 +118,13 @@ public class ThingsboardInstallService {
log.info("Starting ThingsBoard Installation..."); log.info("Starting ThingsBoard Installation...");
log.info("Installing DataBase schema..."); log.info("Installing DataBase schema for entities...");
entityDatabaseSchemaService.createDatabaseSchema();
log.info("Installing DataBase schema for timeseries...");
databaseSchemaService.createDatabaseSchema(); tsDatabaseSchemaService.createDatabaseSchema();
log.info("Loading system data..."); log.info("Loading system data...");

4
application/src/main/java/org/thingsboard/server/service/install/CassandraAbstractDatabaseSchemaService.java

@ -25,7 +25,7 @@ import java.nio.file.Paths;
import java.util.List; import java.util.List;
@Slf4j @Slf4j
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";
@ -41,7 +41,7 @@ public abstract class CassandraAbstractDatabaseSchemaService /*implements Databa
this.schemaCql = schemaCql; this.schemaCql = schemaCql;
} }
//@Override @Override
public void createDatabaseSchema() throws Exception { public void createDatabaseSchema() throws Exception {
log.info("Installing Cassandra DataBase schema part: " + schemaCql); log.info("Installing Cassandra DataBase schema part: " + schemaCql);
Path schemaFile = Paths.get(installScripts.getDataDir(), CASSANDRA_DIR, schemaCql); Path schemaFile = Paths.get(installScripts.getDataDir(), CASSANDRA_DIR, schemaCql);

43
application/src/main/java/org/thingsboard/server/service/install/CassandraDatabaseSchemaService.java

@ -1,43 +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.service.install;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Profile;
import org.springframework.stereotype.Service;
import org.thingsboard.server.dao.util.NoSqlDao;
@Service
@NoSqlDao
@Profile("install")
@Slf4j
public class CassandraDatabaseSchemaService implements DatabaseSchemaService {
@Autowired
private CassandraEntityDatabaseSchemaService cassandraEntityDatabaseSchemaService;
@Autowired
private CassandraTsDatabaseSchemaService cassandraTsDatabaseSchemaService;
@Override
public void createDatabaseSchema() throws Exception {
log.info("Installing Cassandra DataBase schema...");
cassandraEntityDatabaseSchemaService.createDatabaseSchema();
cassandraTsDatabaseSchemaService.createDatabaseSchema();
}
}

5
application/src/main/java/org/thingsboard/server/service/install/CassandraEntityDatabaseSchemaService.java

@ -16,9 +16,12 @@
package org.thingsboard.server.service.install; package org.thingsboard.server.service.install;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.thingsboard.server.dao.util.NoSqlDao;
@Service @Service
public class CassandraEntityDatabaseSchemaService extends CassandraAbstractDatabaseSchemaService { @NoSqlDao
public class CassandraEntityDatabaseSchemaService extends CassandraAbstractDatabaseSchemaService
implements EntityDatabaseSchemaService {
public CassandraEntityDatabaseSchemaService() { public CassandraEntityDatabaseSchemaService() {
super("schema-entities.cql"); super("schema-entities.cql");
} }

5
application/src/main/java/org/thingsboard/server/service/install/CassandraTsDatabaseSchemaService.java

@ -16,9 +16,12 @@
package org.thingsboard.server.service.install; package org.thingsboard.server.service.install;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.thingsboard.server.dao.util.NoSqlTsDao;
@Service @Service
public class CassandraTsDatabaseSchemaService extends CassandraAbstractDatabaseSchemaService { @NoSqlTsDao
public class CassandraTsDatabaseSchemaService extends CassandraAbstractDatabaseSchemaService
implements TsDatabaseSchemaService {
public CassandraTsDatabaseSchemaService() { public CassandraTsDatabaseSchemaService() {
super("schema-ts.cql"); super("schema-ts.cql");
} }

4
application/src/main/java/org/thingsboard/server/service/install/EntityDatabaseSchemaService.java

@ -0,0 +1,4 @@
package org.thingsboard.server.service.install;
public interface EntityDatabaseSchemaService extends DatabaseSchemaService {
}

44
application/src/main/java/org/thingsboard/server/service/install/HybridDatabaseSchemaService.java

@ -1,44 +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.service.install;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Profile;
import org.springframework.stereotype.Service;
import org.thingsboard.server.dao.util.HybridDao;
@Service
@Profile("install")
@Slf4j
@HybridDao
public class HybridDatabaseSchemaService implements DatabaseSchemaService {
@Autowired
private SqlEntityDatabaseSchemaService sqlEntityDatabaseSchemaService;
@Autowired
private CassandraTsDatabaseSchemaService cassandraTsDatabaseSchemaService;
@Override
public void createDatabaseSchema() throws Exception {
log.info("Installing Hybrid SQL/Cassandra DataBase schema...");
sqlEntityDatabaseSchemaService.createDatabaseSchema();
cassandraTsDatabaseSchemaService.createDatabaseSchema();
}
}

4
application/src/main/java/org/thingsboard/server/service/install/SqlAbstractDatabaseSchemaService.java

@ -27,7 +27,7 @@ import java.sql.Connection;
import java.sql.DriverManager; import java.sql.DriverManager;
@Slf4j @Slf4j
public abstract class SqlAbstractDatabaseSchemaService /*implements DatabaseSchemaService*/ { public abstract class SqlAbstractDatabaseSchemaService implements DatabaseSchemaService {
private static final String SQL_DIR = "sql"; private static final String SQL_DIR = "sql";
@ -49,7 +49,7 @@ public abstract class SqlAbstractDatabaseSchemaService /*implements DatabaseSche
this.schemaSql = schemaSql; this.schemaSql = schemaSql;
} }
//@Override @Override
public void createDatabaseSchema() throws Exception { public void createDatabaseSchema() throws Exception {
log.info("Installing SQL DataBase schema part: " + schemaSql); log.info("Installing SQL DataBase schema part: " + schemaSql);

44
application/src/main/java/org/thingsboard/server/service/install/SqlDatabaseSchemaService.java

@ -1,44 +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.service.install;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Profile;
import org.springframework.stereotype.Service;
import org.thingsboard.server.dao.util.SqlDao;
@Service
@Profile("install")
@Slf4j
@SqlDao
public class SqlDatabaseSchemaService implements DatabaseSchemaService {
@Autowired
private SqlEntityDatabaseSchemaService sqlEntityDatabaseSchemaService;
@Autowired
private SqlTsDatabaseSchemaService sqlTsDatabaseSchemaService;
@Override
public void createDatabaseSchema() throws Exception {
log.info("Installing SQL DataBase schema...");
sqlEntityDatabaseSchemaService.createDatabaseSchema();
sqlTsDatabaseSchemaService.createDatabaseSchema();
}
}

5
application/src/main/java/org/thingsboard/server/service/install/SqlEntityDatabaseSchemaService.java

@ -16,9 +16,12 @@
package org.thingsboard.server.service.install; package org.thingsboard.server.service.install;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.thingsboard.server.dao.util.SqlDao;
@Service @Service
public class SqlEntityDatabaseSchemaService extends SqlAbstractDatabaseSchemaService { @SqlDao
public class SqlEntityDatabaseSchemaService extends SqlAbstractDatabaseSchemaService
implements EntityDatabaseSchemaService {
public SqlEntityDatabaseSchemaService() { public SqlEntityDatabaseSchemaService() {
super("schema-entities.sql"); super("schema-entities.sql");
} }

5
application/src/main/java/org/thingsboard/server/service/install/SqlTsDatabaseSchemaService.java

@ -16,9 +16,12 @@
package org.thingsboard.server.service.install; package org.thingsboard.server.service.install;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.thingsboard.server.dao.util.SqlTsDao;
@Service @Service
public class SqlTsDatabaseSchemaService extends SqlAbstractDatabaseSchemaService { @SqlTsDao
public class SqlTsDatabaseSchemaService extends SqlAbstractDatabaseSchemaService
implements TsDatabaseSchemaService {
public SqlTsDatabaseSchemaService() { public SqlTsDatabaseSchemaService() {
super("schema-ts.sql"); super("schema-ts.sql");
} }

4
application/src/main/java/org/thingsboard/server/service/install/TsDatabaseSchemaService.java

@ -0,0 +1,4 @@
package org.thingsboard.server.service.install;
public interface TsDatabaseSchemaService extends DatabaseSchemaService {
}
Loading…
Cancel
Save