mirror of
https://github.com/hanzoai/tasks.git
synced 2026-10-04 02:04:03 +00:00
## What changed? <!-- Describe what has changed in this PR --> Restored schema scripts for `nexus_incoming_services` Added new schema revisions to drop `nexus_incoming_services` tables and create `nexus_endpoint` tables ## Why? <!-- Tell your future self why have you made these changes --> OSS v1.24 was released using an older schema change from before incoming services were renamed to endpoints, so we need to keep that to avoid breaking schema upgrades
What
This directory contains the cassandra schema for every keyspace that temporal owns. The directory structure is as follows
./schema
- keyspace1/
- keyspace2/
- keyspace.cql -- Contains the keyspace definition
- schema.cql -- Contains the latest & greatest snapshot of the schema for the keyspace
- versioned
- v0.1/
- v0.2/ -- One directory per schema version change
- v1.0/
- manifest.json -- json file describing the change
- changes.cql -- changes in this version, only [CREATE, ALTER] commands are allowed
How
Q: How do I update existing schema ?
- Add your changes to schema.cql
- Create a new schema version directory under ./schema/keyspace/versioned/vx.x
- Add a manifest.json
- Add your changes in a cql file
- Once you are done with these use the ./temporal-cassandra-tool to update the schema
Q: What's the format of manifest.json
Example below:
- MinCompatibleVersion is the minimum schema version that your code can handle
- SchemaUpdateCqlFiles are list of .cql files containing your create/alter commands
{
"CurrVersion": "0.1",
"MinCompatibleVersion": "0.1",
"Description": "base version of schema",
"SchemaUpdateCqlFiles": [
"base.cql"
]
}