首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java中的Cassandra迁移库

Java中的Cassandra迁移库
EN

Stack Overflow用户
提问于 2017-08-11 22:38:30
回答 1查看 1K关注 0票数 1

我已经创建了一个Spring Boot微服务,它对数据流运行聚合,并将其写入各种Cassandra表。我正在寻找一个类似于Flyway的java库,它将迁移Cassandra模式,并在资源文件夹中存在脚本。有没有人有什么建议,最好是针对你个人在生产中使用过的库?

EN

Stack Overflow用户

发布于 2017-08-11 22:56:10

我使用了builtamont

代码语言:javascript
运行
复制
    <dependency>
        <groupId>com.builtamont</groupId>
        <artifactId>cassandra-migration</artifactId>
        <version>0.9</version>
    </dependency>

代码中的迁移:

代码语言:javascript
运行
复制
import com.builtamont.cassandra.migration.CassandraMigration;
import com.builtamont.cassandra.migration.api.configuration.KeyspaceConfiguration;
import org.springframework.beans.factory.InitializingBean;

class CassandraDataSourceMigration implements InitializingBean {
    private final String ip;
    private final String clusterName;
    private final Integer port;
    private final String keyspaceName;
    private final String migrationsPath;

    public CassandraDataSourceMigration(String ip, String clusterName, Integer port, String keyspaceName, String migrationsPath) {
        this.ip = ip;
        this.clusterName = clusterName;
        this.port = port;
        this.keyspaceName = keyspaceName;
        this.migrationsPath = migrationsPath;
    }

    // getters/setters

    @Override
    public void afterPropertiesSet() throws Exception {

        final KeyspaceConfiguration keyspaceConfig = new KeyspaceConfiguration();
        keyspaceConfig.setName(keyspaceName);
        keyspaceConfig.getClusterConfig().setContactpoints(new String[]{ip});
        if (port != null) {
            keyspaceConfig.getClusterConfig().setPort(port);
        }

        final CassandraMigration migrationProcessor = new CassandraMigration();
        migrationProcessor.setLocations(new String[]{migrationsPath});
        migrationProcessor.setKeyspaceConfig(keyspaceConfig);
        migrationProcessor.migrate();
    }
}

application.properties

代码语言:javascript
运行
复制
cassandra.ip=127.0.0.1
cassandra.cluster=My cluster
cassandra.keyspace=saya
cassandra.migration=classpath:db/migration
cassandra.port=9042

迁移脚本位于resources/db/migration V1___Init_table.cql下

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45637872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档