README
¶
Using the cassandra schema tool
This package contains the tooling for cadence cassandra operations.
For localhost development
make install-schema
NOTE: See CONTRIBUTING for prerequisite of make command.
For production
Create the binaries
- Run
make cadence-cassandra-tool
- You should see an executable
cadence-cassandra-tool
NOTE: See CONTRIBUTING for prerequisite of make command.
Do one time database creation and schema setup for a new cluster
This uses Cassandra's SimpleStratagey for replication. For production, we recommend using a replication factor of 3 with NetworkTopologyStrategy.
cadence-cassandra-tool --ep $CASSANDRA_SEEDS create -k $KEYSPACE --rf $RF
See https://www.ecyrd.com/cassandracalculator for an easy way to determine how many nodes and what replication factor you will want to use. Note that Cadence by default uses Quorum
for read and write consistency.
./cadence-cassandra-tool -ep 127.0.0.1 -k cadence setup-schema -v 0.0 -- this sets up just the schema version tables with initial version of 0.0
./cadence-cassandra-tool -ep 127.0.0.1 -k cadence update-schema -d ./schema/cassandra/cadence/versioned -- upgrades your schema to the latest version
./cadence-cassandra-tool -ep 127.0.0.1 -k cadence_visibility setup-schema -v 0.0 -- this sets up just the schema version tables with initial version of 0.0 for visibility
./cadence-cassandra-tool -ep 127.0.0.1 -k cadence_visibility update-schema -d ./schema/cassandra/visibility/versioned -- upgrades your schema to the latest version for visibility
Update schema as part of a release
You can only upgrade to a new version after the initial setup done above.
./cadence-cassandra-tool -ep 127.0.0.1 -k cadence update-schema -d ./schema/cassandra/cadence/versioned -v x.x -y -- executes a dryrun of upgrade to version x.x
./cadence-cassandra-tool -ep 127.0.0.1 -k cadence update-schema -d ./schema/cassandra/cadence/versioned -v x.x -- actually executes the upgrade to version x.x
./cadence-cassandra-tool -ep 127.0.0.1 -k cadence_visibility update-schema -d ./schema/cassandra/visibility/versioned -v x.x -y -- executes a dryrun of upgrade to version x.x
./cadence-cassandra-tool -ep 127.0.0.1 -k cadence_visibility update-schema -d ./schema/cassandra/visibility/versioned -v x.x -- actually executes the upgrade to version x.x
Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func SetGoCQLClient ¶ added in v0.18.0
SetGoCQLClient is used to overwrite the defaultGoCQLClient global
func SetupSchema ¶
func SetupSchema(config *SetupSchemaConfig) error
SetupSchema setups the cassandra schema
func VerifyCompatibleVersion ¶ added in v0.3.6
func VerifyCompatibleVersion( cfg config.Persistence, ) error
VerifyCompatibleVersion ensures that the installed version of cadence and visibility keyspaces is greater than or equal to the expected version. In most cases, the versions should match. However if after a schema upgrade there is a code rollback, the code version (expected version) would fall lower than the actual version in cassandra.
Types ¶
type CQLClientConfig ¶ added in v0.5.7
type CQLClientConfig struct { Hosts string Port int User string Password string Keyspace string Timeout int TLS *auth.TLS CQLClient gocql.Client // contains filtered or unexported fields }
CQLClientConfig contains the configuration for cql client
type SetupSchemaConfig ¶
type SetupSchemaConfig struct { CQLClientConfig schema.SetupConfig }
SetupSchemaConfig contains the configuration params needed to setup schema tables