我在我的Spring Boot应用程序中将Cassandra用作数据源,并希望在应用程序启动之前初始化数据库。
到目前为止,我已经定义了扩展“ AbstractCassandraConfiguration”类的“ CassandraConfiguration”类,如下面的示例所示,并且我有一个扩展“ CassandraRepository”的存储库。当我自己创建键空间和表时,该应用程序运行良好。
但是,我想在应用程序启动时自动创建键空间和表。为此,我在资源文件夹下提供了一个schema.cql文件,但无法使该脚本正常工作。
有谁知道如何做才能自动创建键空间和表?
谢谢。
编辑:我正在使用Cassandra 2.0.9,spring-boot 1.3.2.RELEASE和datastax cassandra驱动程序2.1.6版本。
CassandraConfiguration.java
@Configuration
@PropertySource(value = { "classpath:cassandra.properties" })
@EnableCassandraRepositories(basePackages = { "bla.bla.bla.repository" })
public class CassandraConfiguration extends AbstractCassandraConfiguration {
@Autowired
private Environment environment;
@Bean
public CassandraClusterFactoryBean cluster() {
CassandraClusterFactoryBean cluster = new CassandraClusterFactoryBean();
cluster.setContactPoints( environment.getProperty( "cassandra.contactpoints" ) );
cluster.setPort( Integer.parseInt( environment.getProperty( "cassandra.port" ) ) );
return cluster;
}
@Bean
public CassandraMappingContext cassandraMapping() throws ClassNotFoundException {
return new BasicCassandraMappingContext();
}
@Bean
public CassandraConverter converter() throws ClassNotFoundException {
return new …Run Code Online (Sandbox Code Playgroud)