2017-08-11 5 views
0

私は、データストリーム上で集約を実行し、さまざまなカサンドラのテーブルに書き込むSpringブートマイクロサービスを作成しました。私は、Cassandraスキーマをリソースフォルダ内のスクリプトの存在とともに移行する、Flywayに似たJavaライブラリを探しています。誰もあなたが個人的にプロダクションで使用したライブラリのための推奨事項はありますか?コード内Javaのカサンドラ移行ライブラリ

<dependency> 
     <groupId>com.builtamont</groupId> 
     <artifactId>cassandra-migration</artifactId> 
     <version>0.9</version> 
    </dependency> 

移行:

+0

おそらくあなたは[liquibase extension](https://github.com/liquibase/liquibase-cassandra) – bilak

+0

とおそらく[pillar](https://github.com/comeara/pillar)を試すことができます。 – bilak

答えて

0

は私がbuiltamont使用

cassandra.ip=127.0.0.1 
cassandra.cluster=My cluster 
cassandra.keyspace=saya 
cassandra.migration=classpath:db/migration 
cassandra.port=9042 

、移行スクリプトはリソースの下にある

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を/ DB /移行V1_0__Init_table.cql

関連する問題